关于配置通用链接Universal Link 及 怎么理解通用链接Universal Link

1、对通用链接Universal Link的理解

iOS app间的跳转,目前常见的有2种方式:URL Scheme和通用链接Universal Link。

URL Scheme是可以自定义的,会被微信等屏蔽。

通用链接Universal Link不会被微信屏蔽,项目中有微信分享和QQ分享的话,就必须去配置通用链接Universal Link。

2、通用链接Universal Link的配置

A、首先要创建一个文件,注意不能带任何后缀名,且命名必须为apple-app-site-association,必须放在https域名的根目录下。

B、这个apple-app-site-association文件的内容,要是json格式的,需要的可以直接复制下面的:

{
"applinks": {
    "apps": [],
    "details": [
        {
            "appID": "123.456",
            "paths": [ "*" ]
        }
    ]
   }
}

其中123请替换为开发者账号的teamid,456请替换为你的项目Bundle ID(注意中间是有个点的)。

path这里的 "*",可以理解为一个全路径,也就是跳转时不做具体指定跳转到哪一个界面。

文件配置好之后,给到你们公司的服务端,让他上传到服务器的根目录下,然后把地址给到你,如我司服务器地址是https://ABC.DEF.cn,那么后台给到我的就是https://ABC.DEF.cn/apple-app-site-association,当我点击这个地址,就会直接将apple-app-site-association文件下载下来,双击可打开查看内容。

C、进到开发者账号,找到你项目对应的ID,点进去,勾选上Associated Domains,如图所示:


image.png

D、进到你项目的Signing & Capabilities ,找到Associated Domins ,去填写Domins。
这个地址怎么填呢?坑来了!!
很多其他的讲Universal Link的博客都告诉你需要以applinks开头,然后就没有然后了。我当时就是这个地方没注意,配错了,导致卡了很久。
正确的填写内容应该是:applinks:ABC.DEF.cn
这个ABC.DEF.cn就是我们在前面讲到的,公司的服务器地址https://ABC.DEF.cn
也就是说,如果公司服务器地址为https://ABC.DEF.cn,那么Domians应该填入的就是applinks:ABC.DEF.cn
//不明白可以随时私我

到这一步,通用链接Universal Link就配置好啦!!

既然配置的工作我们都做好啦,那么配置的对不对呢,也是有方法可以验证的。

3、验证通用链接Universal Link是否配置成功

打开Safari,输入地址https://ABC.DEF.cn/后点击前往,若看到下面这个界面:

image.png

就说明配置已经成功啦!
接下来见证一下奇迹吧!用手指将界面往下滑,就会看到:


image.png

“在XXX”App中打开,就能看到我们项目的icon和名称了,到这一步,说明验证成功了我们刚刚配置的通用链接是木有毛病的!

4、通用链接Universal Link的代码调用

当使用Universal Links唤醒app时会走到App Delegate里的这个方法:

 - (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
     //当使用Universal Links唤醒app时就执行这个方法。
     NSLog(@"userActivity : %@",userActivity.webpageURL.description);

    //在这里可以根据自己的项目需求做对应的处理
   return YES;

}

推荐阅读更多精彩内容