iOS 通用链接 UniversalLink

UniversalLink 是苹果自iOS9.0推出的用于应用之间跳转的一种安全认证机制,通过HTTPS链接来启动APP。若手机中安装了支持该链接的APP,点击该链接就会直接进入到APP中。要实现这个机制需要进行相关的配置,具体可看苹果官方文档。

一、配置过程

1.域名:支持https的域名。举例: https://example.com
2.AppID中开启Associated Domains。Supporting Associated Domains
登录App Developer,在对应的App ID下,在Capabilities列表里勾选Associated Domains,状态变为Enabled。同时记录App ID Prefix (Team ID) 和 BundleID。

AppID中开启Associated Domains.png

3.配置apple-app-site-association。
创建一个文件名必须为apple-app-site-association的文件,注意没有后缀名,json格式内容如下:

{
    "applinks": {
        "apps": [],
        "details": [ //如果有多个App需要支持Universal,details数组中可配置多个App的信息
            {
                "appID": "TeamID.BundleID", //自行替换TeamID和BundleID
                "paths": [ "*" ] //path 过滤需要处理的地址,不需要过滤处理则配置通配符*
            }
        ]
    }
}
  • appID:组成方式是 TeamID.BundleID,将第二步记录下的TeamID和BundleID进行替换。
  • paths:设定App支持的路径,只有这些设定的路径的链接,才能被App所处理。通配符*代表支持域名下所有链接。

保存内容后将文件放在域名根目录或.well-known下。
在浏览器中输入这个文件链接后(举例: https://example.com/apple-app-site-association),应该可直接下载apple-app-site-association文件。

4.Xcode中配置Associated Domains。
在项目工程中配置Associated Domains,若之前没有添加过Associated Domains,点击+Capability 添加Associated Domains,然后在Domains中填入该App想要支持的域名,必须以applinks:为前缀,用applinks:替换https://。
举例,若支持通用链接的域名是 https://example.com,则Domains中填入的是applinks:example.com。

Xcode中配置Associated Domains.png

5.验证
可前往苹果验证apple-app-site-association文件是否合法有效。
在备忘录中输入并点击UniversalLink 链接,可跳转至App;或在Safari浏览器中打开 Universal Link 链接,下拉会出现App打开按钮,点击打开可以跳转至App,这样 Universal Link 就配置成功了。

6.处理
在 AppDelegate 里实现方法

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb])
    {
        NSURL *url = userActivity.webpageURL;
        //这里根据不同的URL来进行处理,拉起App后可跳转到不同页面
    }
    return YES;
}

你可能感兴趣的:(iOS 通用链接 UniversalLink)