介绍
UniversalLinks 是iOS9退出的一个新特性,其作用为离开传统的scheme://方式外也可以启动app,方便在h5中调用app。(原https网页中 如采用iframe方式 调起app ,但https中的iframe.src应为https地址,故而对scheme://方式的兼容性并不到位。如为http方则没有这个问题)。
作用:
1、在浏览器(safari)中H5中将加上“打开app”的按钮。
2、允许再微信等app中启动自己的app (本人实测微信中不是所有情况都可以)
实现步骤:(下列苹果开发者文章中有详细的介绍,我这边再做简单的介绍)
1、工程(target)设置->capabilities->Associated Domain->开启此项,增加条
“applinks:域名” 可以支持多条, 安装app 后如果采用浏览器访问这些域名下的h5,ios将会请求域名目录下的另外一个文件
2、在服务器上配置apple-app-site-association文件,不应该有扩展名。
文件响应头内容类型应为: Content-type: text/json; charset=UTF-8
文件内容如下:
{ "applinks": { "apps": [], "details": [ { "appID": "appleID可在苹果后台查询到 teamId.Bundleid", "paths": [ "*" ] } ] } }
//paths属性支持多个,也支持*通配符,在访问这些路径的时候UniversalLinks将会起作用。
3、实现代理
-(BOOL) application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler { if([userActivity.activityType isEqualToString: NSUserActivityTypeBrowsingWeb]) { NSString* url = userActivity.webpageURL.path; //此处处理代码为实现路由等更好的支持。 return YES; } return NO; }
This i like. Thanks!
Pingback引用通告: iOS 从URL启动App与openURL | 孙广锋的博客