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。
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。
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;
}