什么是 Universal Links
在开发中咱们须要从浏览器,Safari中去唤醒App,iOS 9以前咱们经过配置scheme从而实现这种跳转,可是这种方式须要提早判断系统中是否安装了可以响应对应scheme的app,这种方式在微信中是被禁用的。
Universal Links是iOS 9推出的一项功能,咱们能够经过配置Universal Links使用户可以经过一个连接进入app或者指定页面,这个不会被微信禁用。
javascript
配置文件
- 首先咱们须要有一个支持Https的域名,必须支持Https
- 建立一个内容为Json格式的文件,文件名为apple-app-site-association,没有后缀名,文件内容以下:
{ "applinks": { "apps": [], "details": [ { "appID": "2DNT4K53X5.com.apple.app", "paths": [ "*" ] } ] } }
appID组成:TeamId.your app’s bundle identifier。这里我随意填的,2DNT4K53X5表示你app的TeamId,com.apple.app表示app的bundle identifier
paths组成:设定你的app支持的路径列表,只有这些指定的路径的连接,才能被app所处理。*的写法表明了可识别域名下全部连接。
java
- 将这个文件上传到你的域名对应的根目录或者.well-known目录下,这样IOS将会在合适的时候,从该域名请求这个文件。咱们能够本身测试,即打开 域名/apple-app-site-association ,看看咱们能不可以下载到对应的文件。
- 而后咱们须要在app中进行相关配置。以前咱们须要在对应App Id的Application Services列表中加入Associated Domains,使它变成Enabled。如今Xcode会帮咱们自动配置,咱们只须要在项目中加入Associated Domains,而后在Domains中加入相应连接,以下图:
Domains中加入的连接,必须以 applinks:开头,而后去除你的域名前的Https以及最后的/,例如你的域名是https://www.apple.wwdc.com/,那么Domains中加入的就是applinks:www.apple.wwdc.com。web
验证是否有效
配置一个该域名下能够访问的连接地址,而后复制该连接到Safari中直接访问,而后在出现的网页中下拉,当出如今“XXX”App中打开便可json
在AppDelegate处理Universal Links
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler { if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) { NSURL *webpageURL = userActivity.webpageURL; NSString *host = webpageURL.host; if ([host isEqualToString:@"××××.mingpao.com"]) { //判断域名是本身的网站,进行咱们须要的处理 }else{ [[UIApplication sharedApplication]openURL:webpageURL]; } } return YES; }
当用Universal Links启动APP时就会调用上面的方法。浏览器