如何在ionic应用程序中共享链接,链接回应用程序
How to share a link within ionic app that links back to the app
我正在尝试在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
的插件(我使用这个(,还需要安装一个通用链接插件,将http
URL 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
根据应用程序的加载方式(打开应用程序的常见加载或因为有人点击了链接(来决定引导(注意,在这里你必须用它们各自的addeventListener
来处理你的up的resume
和pause
可能的状态。
注意,因为使用$urlRouterProvider.otherwise()
是一个很好的技巧,因为你可以在那里设置正确的path
。
我们的最后一步应该是为那些第一次打开链接但应用程序尚未安装的人创建一个网站(他们将成功打开URL(。
希望它能有所帮助!
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');
- 将下载链接从web浏览器传递给第三方应用程序
- 链接两个网页或网络应用程序的最佳方式
- 如何基于打开的链接应用类
- Cordova包装应用程序内部链接加载在应用程序中,外部链接加载在浏览器中
- 如何在点击链接后从用户取消对话框中获得回调以选择移动应用程序
- 如何阻止iPhone web应用程序链接在Safari中打开
- 正在Rail应用程序中链接JS文件
- 是否可以在 Angular.js 应用程序中使用传统的锚链接
- 如何处理Phonegap + JQM应用程序中的链接
- Web 应用程序在 Safari 中打开链接,而不是在现有视图中打开链接
- 需要从PhoneGap应用程序在不同的浏览器中打开链接
- 仅允许通过本机iOS和Android应用程序访问网络链接
- 为什么YouTube-dl下载链接来自YouTube在meteorjs应用程序中
- iOS应用程序,链接到在浏览器中打开的网站,链接在网站关闭浏览器
- 在后台打开应用程序链接没有
- UI 聊天应用程序中的可单击链接
- “评价这个应用程序”谷歌播放商店链接在离子应用程序
- 离子应用程序 - 无法获取要在 WebView 中打开的链接
- Rails 应用程序 - jQuery Document.ready在单击链接时不调用,但在新选项卡中打开或刷新时工作
- 宣布网页为mailto链接处理程序