如何在离线应用程序中共享链接回应用程序的链接

时间:2016-06-30 17:26:59

标签: javascript android angularjs cordova ionic-framework

我正试图在离子应用程序中实现社交共享,我能够通过本机共享表成功共享链接。当链接被共享的人点击链接时,它意味着链接回应用程序内的项目,如果用户安装了应用程序,否则,它会提示用户安装应用程序。但这不是那种方式,而是询问你是否想用PlayStore或浏览器打开。

以下是我在安装cordova社交分享后成功分享链接的第一件事

google-map

,视图就像这样

.controller('myCtrl', function($state, $cordovaContacts, $ionicActionSheet, $cordovaSocialSharing ) {
  $scope.share = function(id) {
    $cordovaSocialSharing
      .share("my Link Description", null, null,"https://play.google.com/store/apps/deatils?com.ionicframework.myapp/app/item/"+id) //    Share via native share sheet
      .then(function(result) {
        // Success!
      }, function(err) {
        // An error occured. Show a message to the user
      });
    }
  }
})

当链接拒绝按我的预期工作时,我做了进一步的研究,我找到了自定义URL方案PhoneGap插件,这是Cordova的一个很酷的插件,旨在允许通过点击电子邮件或网页上的链接

安装插头后,链接应该像这样使用;

<a ng-click="share(id)"><i class="ion ion-share"></i> </a>

但如果我将任何这些原始内容放入社交共享实现中,它会在编写时共享它,因此无法单击该链接。

2 个答案:

答案 0 :(得分:0)

好。让我们一步一步走。

首先,您不仅需要安装用于URL scheme的插件(我使用this),还需要安装一个链接{universal-link插件的插件1}}您的应用http的网址http://example.com。 完成所有过程后,您的example://文件应该是这样的:

config.xml

注意:您会看到名为<plugin name="cordova-plugin-customurlscheme" spec="~4.2.0"> <variable name="URL_SCHEME" value="example" /> <variable name="ANDROID_SCHEME" value=" " /> <variable name="ANDROID_HOST" value=" " /> <variable name="ANDROID_PATHPREFIX" value="/" /> </plugin> <plugin name="cordova-universal-links-plugin" spec="~1.1.2" /> <universal-links> <ios-team-id value="xxxxxx" /> <host name="angular.example.com" scheme="https"> <path event="openUrl1Page" url="/url1/*" /> <path event="openUrl2Page" url="/url2/*" /> </host> </universal-links> 的文件夹已创建。将ul_web_hooks元素复制到主<link>文件中(实际上对我来说没有它,但在文档中,他们说这是必要的。)

完成这两件事之后,您应该可以打开.html通过控制台输入类似的内容:

app

如果您使用adb shell am start -W -a android.intent.action.VIEW -d "http://angular.example.com/url1/x"方案,它也应该有效:

URL

接下来,您需要手动引导您的应用,因此adb shell am start -W -a android.intent.action.VIEW -d "example://url1/x"决定引导,具体取决于应用的加载方式(通常加载打开应用或因为有人点击了链接)(请注意,在这里你'我必须使用各自的cordova来处理resumepause可能的状态。

请注意,因为使用addeventListener这是一个很好的技巧,因为你可以设置正确的$urlRouterProvider.otherwise()

我们的最后一步应该是为那些第一次打开链接并且尚未安装应用程序的人创建一个网站(他们将成功打开该网址)。

希望它有所帮助!

答案 1 :(得分:0)

window.open('https://www.facebook.com/sharer/sharer.php?u={{YOUR URL}}, '_system', 'location=yes');

window.open('https://www.twitter.com/share?url={{YOUR URL}}, '_system', 'location=yes');