美文网首页
UniversalLink 过程总结

UniversalLink 过程总结

作者: 叫我魏大川 | 来源:发表于2020-05-23 14:04 被阅读0次

1:准备好一个文件名字叫做:apple-app-site-association

不要加后缀名,里面放的是标准的json。

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "9JA89QQLNQ.com.apple.wwdc",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
            },
            {
                "appID": "ABCD1234.com.apple.wwdc",
                "paths": [ "*" ]
            }
        ]
    }
}

"9JA89QQLNQ.com.apple.wwdc"
9JA89QQLNQ: 这个玩意是teamID,可以在开发者中心的appid详情中看到;
com.apple.wwdc:这个玩意是bundle id;
paths: 用来指定打开不同的APP或APP不同的页面。APP中能接收到这个参数,我们可以拿来判断要跳转到哪个页面。
比如上面的例子,"域名/wwdc/news/", 这个链接就能吊起9JA89QQLNQ下边的‘com.apple.wwdc’ 这个bundleId对应的APP。
如果直接点击"域名"这个链接,只能吊起ABCD1234下边的”com.apple.wwdc“这个APP。
但是一般我们自己的做法是,teamID是一样的,然后账号下不同的APP的bundle id是不同的,所以可以用path来配置打开我们不同的APP。

2:找后端小伙把文件放入到一个域名下的根目录,必须支持HTTPS协议,让我们请求 "域名/apple-app-site-association"能请求到。因为没指定请求头的类型,所以请求下来的是个文件。

其实还可以在根目录创建一个well-known的目录,然后放里边,但是我这边试的不行,可能是我姿势不对吧。
还有一个注意点是,好像不能用四级域名,我这边测试的是不行。

3:需要使用UniversalLink的APPID需要打开通用链接功能。注意打开后pp文件(配置文件)会失效,需要重建pp文件。

屏幕快照 2020-05-23 下午12.04.08.png

4:工程中添加Associated Domains。把那个放文件的域名放进去,格式是:

applinks:+域名,例如applinks:www.jianshu.com
注意,域名前不需要加https://,后边也不需要加/

屏幕快照 2020-05-23 下午2.04.54.png

在APPdelegate中添加方法:

#pragma mark Universal Link
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSURL *url = userActivity.webpageURL;
       // TODO 根据需求进行处理
    }
      // TODO 根据需求进行处理
    return YES;
}

5:测试。一般只会在APP下载完后初次启动才会下载这个文件,所以如果修改了apple-app-site-association文件,请删除APP后重新下载。

在备忘录中,输入那个域名,拼上你设置的path,如果path是*,代表的域名本身链接即可吊起。如果点击连接能直接跳转到我们的APP,说明配置成功!

6:申请微信分享的时候,需要填写的UniversalLink,就是填写的 "域名+path"。

相关文章

网友评论

      本文标题:UniversalLink 过程总结

      本文链接:https://www.haomeiwen.com/subject/ftejnhtx.html