通用链接-Universal Link

前言

通用链接与URL Scheme的用途类似,主要是实现从外部唤醒App,并执行某些操作(如:打开指定页面)。

由于使用URL Scheme(wechat://path?quary)从当前App唤醒自己的应用时,需要添加应用的URL Scheme到当前App的白名单中,限制该方法的灵活性,使用Universal link刚好可以解决这样的问题 (https://域名/product/detail)。

应用

链接必须是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.bundleID",
       "paths": ["/deaplink", "/product/detail/*"]
    }]
 }
}

1、苹果开发者中心AppID开启ASSociated Domains服务

通用链接-Universal Link_第1张图片

2、在Xcode中,Target-Capabilities开启并设置Associated Domains

通用链接-Universal Link_第2张图片

3、IOS回调处理

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray> * _Nullable))restorationHandler {
    
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSURL *webUrl = userActivity.webpageURL;
        if ([webUrl.host isEqualToString:@"域名"]) {

        }  
    }
    return YES;
}

你可能感兴趣的:(Objective-C)