微信中通过页面(H5)直接打开本地app的解决方案
2017-09-12 10:58
826 查看
简述
微信中通过页面直接打开app分为安卓版和IOS版,两个的实现方式是完全不同的。安卓版实现:使用腾讯的应用宝,只要配置了“微下载”之后,打开链接腾讯会帮你判断本地是否已经安装了app,如果本地安装就直接打开,没有安装的话就是腾讯微下载的页面进行app下载,当然微下载的页面腾讯提供了几个模板,可以自己选择和修改。
IOS实现:ios像直接点击链接打开本地app就难了,有两种方式可供我们选择:
1.腾讯深度合作的公司,微信可以帮你打开app;
2.使用IOS9+的新功能“Universal Links”(通用链接);
很显然,第二种方式更适合我们普通的公司。
效果展示
实现步骤
1.配置https(必须是https)网站支持;创建“apple-app-site-association”文件,注意不带后缀,放到网站根目录,确保可以使用:https://xxx.xxx.xxx/apple-app-site-association直接可以访问,apple-app-site-association文件内容如下:
{ "applinks": { "apps": [], "details": [ { "appID": "*****.com.gangguwang.yewugo", "paths": [ "/app/*" ] } ] } }
其中appId是你的Prefix + ID,如图:
paths为你链接拦截的地址,比如我上面填写的是“/app/*”,就是当我访问https://xxx.xxxx.xxx/app/x的时候,会打开本地app,其他连接时候则为正常显示,这个地址可以配置成多个,也可以直接写*;
2.配置苹果证书,开启“Associated Domains”,如下图:
Identifiers - App IDs –Edit 然后开启打钩 Associated Domains 后保存,配置地址:https://developer.apple.com/account/ios/identifier/bundle
3.配置你的App的Universal Links(通用链接)
如果你是普通的ios项目的的话,配置如下:项目 targets->Capabilities->Associated Domains,如图填写你的链接域名
域名的格式必须为:applinks:你的域名(ex:applinks:www.domain.com),可以配置多个;
如果你是Xamarin项目的话,需要选择Entitlements.plist配置关联域,如图:
这样配置完之后,打包即可测试你的应用咯。
官方配置文件:https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2
扩展知识(关于Xamarin)
如果你要处理链接打开本地app并跳转到相应的详情页的话,需要这样实现:1.在你的xxx.iOS项目打开“AppDelegate.cs”文件;
2.重写方法,代码如下:
public override bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler) { if (userActivity.ActivityType == NSUserActivityType.BrowsingWeb) { string url = userActivity.WebPageUrl.ToString(); //全地址 if (!string.IsNullOrEmpty(url)) { //你的业务处理 } } return true; }
参考文档:https://components.xamarin.com/gettingstarted/googleiosappindexing
注意事项
1.配置的网站必须是https,不能为http;2.[重要]展示地址和打开的地址不能在一个域名下(作者测试发现放在同一服务器下都不行),比如展示页的地址是https://a.domain.com/?id=10,打开的如果是https://a.domain.com/app/?id=10,系统默认是打开页面,而不是触发通用链接打开app;
3.[重要]配置玩证书之后需要更新证书,才能内部打包和提测上传成功;
4.通用链接可被屏蔽,点击右上角配置的链接之后,通用链接就失效了,解决方案详见:《iOS通用链接(Universal Links)突然点击无效的解决方案》。
如果觉得本文对你有帮助,请点击右下角“推荐”按钮,谢谢!
相关文章推荐
- 微信中通过页面(H5)直接打开本地app的解决方案
- 微信通过页面(H5)直接打开本地app的解决方法
- 基于应用宝实现微信h5页面中打开本地app,如果没有跳转下载页面的解决方案
- Android 真机,微信打开 H5,切换到 webview,能通过 webdriver 方法操作页面元素,然后链接到新的 H5 页面后,无法操作元素,appium 服务器没有收到 response,
- 一、通过html页面打开Android本地的app
- iis browse的时候,直接通过本地的局域网ip打开页面
- html5页面中打开本地app,如果没有跳转下载页面的解决方案
- 通过html页面打开Android本地的app
- html5页面中打开本地app,如果没有跳转下载页面的解决方案
- qq空间h5页面,如何在微信中直接打开qq空间链接却不需要登陆qq账号密码
- 通过html页面打开Android本地的app
- 京东在html5页面中打开本地app的解决方案
- 移动浏览器H5页面通过scheme打开本地应用
- H5页面打开android本地照册,当webview页面被系统回收的情况下,如何处理图片
- 通过浏览器链接打开本地应用(APP)
- 给你的移动网站加点料:推荐下载App,如果本地安装则直接打开本地App(Android/IOS)
- h5页面唤起本地APP
- js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
- php页面判断是 iphone还是andriod的浏览器&通过 URL types在浏览器打开app
- 通过浏览器直接打开iOS/Android App 应用程序 - Cundong's log - 开源中国社区