iOS Universal Link(通用链接)
2019-04-18 本文已影响0人
_秃头少女_
场景:
用户通过点击链接直接跳转到APP (没有提示),如果手机没有安装app会选择浏览器打开(系统自己会判断是否安装了app)
要求:
1.必须是Https
2.app本地配置对应域名(such as applinks:www.mywebsite.com.Limit. this list to no more than about 20 to 30 domains.)****证书也要同步开通association domin功能的哦
屏幕快照 2019-04-18 下午5.13.12.png 屏幕快照 2019-04-18 下午4.59.37.png3.web service 配置apple-app-site-association(json文件)
//文件放到服务器根目录下或者在根目录下新建.well-known 把apple-app-site-association放到里面
注意:apple-app-site-association的更新时机,app重新安装第一次启动会get请求apple-app-site-association文件,还有就是版本更新会请求文件,其他时间就算后台更新文件配置 app也不会拉取!
Upload the apple-app-site-association file to your HTTPS web server. You can place the file at the root of your server or in the .well-known subdirectory.
{
"applinks": {
"apps": [],//这个必须为空数组
"details": [
{
"appID": "9JA89QQLNQ.com.apple.wwdc",//开发者账号的teamID.bundleID
"paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]//支持打开app的路径 * 代表全路径
},
{
"appID": "ABCD1234.com.apple.wwdc",
"paths": [ "*" ]
}
]
}
}
当然苹果为了方便开发者,也提供了一个网页来验证我们编写的这个** apple-app-site-association **是否合法有效。
验证地址:https://search.developer.apple.com/appsearch-validation-tool/
4.在AppDelegate方法里实现自己的操作
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{}
对比URL Scheme
URL Scheme
- URL Scheme 是为方便app之间互相调用而设计的,注册自己独一的URL Scheme,然后进行交互。我们可以通过系统的OpenURL来打开该app,也可以直接通过 Safari 直接打开该 app,并可以传递参数内容。
Universal Links
- iOS 9 之后,苹果推出的通用链接:一种能够方便的通过传统 HTTP 链接来启动 APP, 使用相同的网址打开网站和 APP。
推出它,肯定有其优点: - 唯一性: 不像自定义的scheme,因为它使用标准的http/https链接到你的web站点,所以它不会被其它的app所声明.另外,Custom URL scheme 因为是自定义的协议,所以在没有安装 app 的情况下是无法直接打开的,而 universal links 本身是一个 HTTP/HTTPS 链接,所以有更好的兼容性
- 安全:当用户的手机上安装了你的app,那么iOS将去你的网站上去下载你上传上去的说明文件(这个说明文件声明了你的app可以打开哪些类型的http链接).因为只有你自己才能上传文件到你网站的根目录,所以你的网站和你的app之间的关联是安全的.
- 可变:当用户手机上没有安装你的app的时候,Universal Links也能够工作.如果你愿意,在没有安装你的app的时候,用户点击链接,会在safari中展示你网站的内容.
- 简单:一个URL链接,可以同时作用于网站和app
私有 其它app可以在不需要知道你的app是否安装了的情况下和你的app相互通信. - 注意:APP URL格式为: URL Scheme://URL identifier,直接调用URL Scheme也可打开程序, URL identifier是可选的。
https://www.jianshu.com/p/53588cf8dbc8
https://blog.csdn.net/mo_xiao_mo/article/details/60954116