我正在尝试在ionic应用程序中实现社交共享,我能够通过本地共享表成功共享链接。当链接的共享者单击该链接时,该链接是指链接回应用程序中的项目。如果用户安装了该应用程序,则提示用户安装该应用程序。但这不是这种方式,而是询问您是否要使用PlayStore或浏览器打开。
以下是我在安装cordova社交共享后成功共享链接的第一件事
.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
});
}
}
})
而视图是这样的
<a ng-click="share(id)"><i class="ion ion-share"></i> </a>
当链接无法按预期工作时,我进行了进一步的研究,我发现自定义URL方案PhoneGap插件是Cordova的一个很酷的插件,旨在允许通过单击电子邮件中的链接或启动应用程序来启动应用程序。网页
安装插头后,链接应按以下方式使用;
<a href="mycoolapp://">Open my app</a>
<a href="mycoolapp://somepath">Open my app</a>
<a href="mycoolapp://somepath?foo=bar">Open my app</a>
<a href="mycoolapp://?foo=bar">Open my app</a>
但是,如果我将其中的任何原始内容放入社交共享实现中,它都会按编写时的方式共享它,因此无法单击链接。
好的。让我们一步一步走。
首先,您不仅需要安装用于该插件的插件URL scheme
(我使用此插件),还需要安装一个将URL链接到您的应用程序的通用链接插件。完成所有过程后,您的文件应如下所示: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
根据应用程序的加载方式(通常是打开应用程序或由于有人单击链接而决定)进行引导(请注意,此处您必须处理resume
和pause
可能的状态你们与他们各自的关系addeventListener
。
请注意,因为使用,这是一个不错的技巧,$urlRouterProvider.otherwise()
因为您可以在此处正确设置path
。
我们的最后一步应该是为那些首次打开链接但尚未安装该应用程序的用户创建一个网站(他们将成功打开URL)。
希望能帮助到你!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句