QQ互联将于2019年12月1日进行Universal Links校验,请开发者及时更新适配。

https://wiki.connect.qq.com/qq互联将于2019年12月1日进行universal-links校验,请开发者及时更

图1 QQ互联 wiki

官方说明: 当支持通用链接时,用户可以点击网站链接重定向到已安装的应用(无需通过Safari浏览器),如果未安装应用则打开该网站链接。

配置前准备:

配置前提:域名需要支持 HTTPS 连接

开始配置:

  1. 打开 https://developer.apple.com,登录苹果开发者账号,开启要配置的APP IDsAssociated Domains服务 (开启服务后需要重新激活失效的Provisioning Profiles,并重新下载安装)图2 苹果开发者官网-Certificates, Identifiers & Profiles-Identifiers-开启服务

2.项目配置支持通用链接的域名(支持添加多个域名) 格式:applinks:xxx.xxx.xx,例如:applinks:d.vibesix.cn。 图3 Capabilities-Associated Domains-添加需要支持的域名

3.需要服务器支持,确认通用链接对应的App的身份,创建一个命名为apple-app-site-association文件(没有后缀名),并写入一下JSON格式数据,如下:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "<App ID Prefix>.<Bundle ID>",
                "paths": [ "/open-app.html/*"]
            }
        ]
    }
}

然后将apple-app-site-association文件拷贝到该域名服务器的.well-known文件夹下面。

ps:App ID PrefixBundle ID可在图1蓝框部分获取到,paths是通用链接域名后面的路径,*代表任意路径

4.测试通用链接是否生效,进入https://search.developer.apple.com/appsearch-validation-tool 进行验证。 图4 验证通用链接是否生效 然而我试过n+1次,无法验证成功,并报错:

Could not extract required information for application links. Learn how to implement the recommended Universal Links.

Error no apps associated with url

果断放弃验证(后来发现这个过程可以忽略),然后试了网上的方法将通用链接粘贴到手机备忘录上,点击链接即可跳转到 App 里,如图:图5 备忘录验证通用链接是否生效

5.进入应用,定位到指定功能模块。

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    if ([[userActivity activityType] isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSString *host = userActivity.webpageURL.host;
        if ([host isEqualToString:@"d.vibesix.cn"]) {
                // 跳转操作
        }
    }
    return YES;
}

实现效果:

图6 手机安装通用链接指向的应用时

图7 手机没有安装通用链接指向的应用时

参考链接: