IOS 配置Universal Links

1.Universal Link 的基本运作机制:

  • 通过在 XCode 的 App 配置中配置了相关信息以及安全域名指定
  • 通过在 Https only 的安全域名上部署一个配置 apple-app-site-association file
  • file 中配置上丰富的 website 与 app 的链接信息
  • 在 website 与 app之间建立起了安全有效的握手机制
  • 实现 website 的 url 与 app 的直接联动

2.apple-app-site-association 的配置

首先放上官网文档的地址:Support Universal Links

(1)创建 apple-app-site-association 文件(文件名称不能更改)

在本地创建json文件,文件内容

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "2QTWJE35GG.com.text.mine",
            "paths": ["/sht/*"]
        }]
    }
}

apps:为必写且固定为[]
appID:TeamID + '.' + BundleID
比如我项目的
teamID为2QTWJE35GG;
BundleID为com.text.mine,
最后appID为2QTWJE35GG.com.text.mine
paths:是一个字符串数组,对应域名中的path,用于过滤可以跳转到App的链接,支持通配符*,?以及NOT进行匹配。
details数组中可以配置多个APP的信息,如果公司内有多个APP需要支持Universal,则可以直接添加多个。

(2)将配置好的apple-app-site-association文件上传到服务器

apple-app-site-association文件需要上传到服务器的根目录下 ,也可以在根目录中添加.well-known文件夹,将文件上传到.well-known文件夹下(.点一定不能少),对应连接分别为
https://xxx/apple-app-site-association
https://xxx/.well-known/apple-app-site-association
xxx为你服务端的域名

注意:上传apple-app-site-association文件时,一定要先带文件后缀一起上传(即原文件,不要强制去掉后缀),然后在服务端重定向一个没有后缀的链接(如上面链接所示,否则通过不了 ,这里卡了一上午)。

苹果提供了一个网页来验证我们编写的这个apple-app-site-association文件是否合法有效,进入验证网址进行验证:

IOS 配置Universal Links_第1张图片
image

出现 Error no apps associated with url 则表明验证通过

(3)配置开发者证书

进入开发者网站,找到对应ID,开通Associated Domains,更新对应描述文件

IOS 配置Universal Links_第2张图片
image
(4)项目配置

在TARGETS的Capablities中开启Associated domains

IOS 配置Universal Links_第3张图片
image

Domains配置的内容为applinks: + 域名(即步骤二中的xxx)
比如:applinks:aliyun.sht.com

实现唤醒代理

 -(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{

    NSLog(@"userActivity : %@",userActivity.webpageURL.description);
    return YES;
}

验证配置

先运行项目,然后
在Safari中输入https://xxxxx/path,path是apple-app-site-association文件中配置的,下拉后出现类似下面的页面,则表示成功

IOS 配置Universal Links_第4张图片
image

注意事项:
1:必须支持https
2:apple-app-site-association名称不能变
3:文件位置只有上面说的两个地方
4:teamId和bundleID要正确
5:IOS9以上

作者:angle_杰
链接:https://www.jianshu.com/p/88be0e472986
来源:
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(IOS 配置Universal Links)