iOS Universal Link

iOS Universal Link

参考文章

1,https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW1
2,http://blog.csdn.net/yohunl/article/details/51036027
3,http://www.cocoachina.com/ios/20150902/13321.html
4,http://strivingboy.github.io/blog/2015/09/27/ios9/
5,http://www.jianshu.com/p/c2ca5b5f391f

项目需要在H5页面中直接跳转到App中,开始使用了Schema的方式,安装App的情况下正常跳转,但是如果未安装App的情况下,Safari会弹出地址无效的错误,产品接受不了。
调查发现iOS9出了UniversalLink机制,可以通过Http/Https跳转到App,从而绕过各种浏览器对Schema的拦截。

原理

1,App在安装时,会检查该应用是否有Associated Domains,(通过工程的Capabilities添加,出现在xx.entitlements中)。对于通过applinks:定义的域名,例如:res.mararun.com,系统则会尝试访问:https://res.mararun.com/apple-app-site-association,取得配置文件。配置文件中的AppID唯一指定了本应用,其中的path指定了能够在App内打开的路径。
2,当通过http或者https访问res.mararun.com/下的页面时,系统会检查能否在注册的应用打开,如果可以的话直接跳转到相应的App(具体实现原理不明)。

注意点

1,apple-app-site-association文件中apps数组为空,”appID”的规则是TeamID + bundleID,TeamID去开发者后台查询。
2,要在需要在App内打开的页面所在的域名的根目录下都放置apple-app-site-association配置文件,否则无法拉起App。
3,https服务器要使用有效的证书,否则无法正确下载配置文件。
4,苹果提供这个网址验证配置文件的正确性:https://search.developer.apple.com/appsearch-validation-tool/
5,验证地址可否在xxApp中打开:可以把希望在App内打开的网址粘贴到手机备忘录中,长按下方弹出的列表中如果存在“在xx中打开”这一选项说明可在xxApp中打开。

疑问点

1,在XCode中设置Associated Domain时,使用通配符无效,不知是何缘故。

你可能感兴趣的:(iOS)