前言
通用链接与URL Scheme的用途类似,主要是实现从外部唤醒App,并执行某些操作(如:打开指定页面)。
由于使用URL Scheme(wechat://path?quary)从当前App唤醒自己的应用时,需要添加应用的URL Scheme到当前App的白名单中,限制该方法的灵活性,使用Universal link刚好可以解决这样的问题 (https://域名/path)。
应用
链接必须是https协议,且在webView打开链接时为跨域的方式(与当前域名不同),才会被作为通用链接唤起。
在根目录或者.well-know目录中存放文件名为apple-app-site-association的文件。(https://域名/.well-know/apple-app-site-association 或 https://域名/apple-app-site-association)
apple-app-site-association文件的内容格式如下:
{
"applinks":{
"apps":[],
"detail":[
{
"appID": "TeamID.com.app.once",
"paths": [ "/once/deeplink/*", "/once/download/*"]
}, {
"appID": "TeamID.com.app.second",
"paths": [ "/second/deeplink/*", "/second/download/*"]
}
]
}
}
1、苹果开发者中心选中对应的Identifier,开启ASSociated Domains服务
2、在Xcode中,Target-Capabilities开启并设置Associated Domains
3、IOS回调处理
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *webUrl = userActivity.webpageURL;
if ([webUrl.host isEqualToString:@"域名"]) {
}
}
return YES;
}