Universal Links是什么?简单说就是通过连接打开App的通道。
官方连接
实现
-
1、必须支持https的域名
-
2、登录苹果开发者后台,把需要添加Universal Links的Identifiers的项目打开通道开关

- 3、打开项目,添加
Associated Domains
,并点+
配置域名,且前缀必须是appkinks:

- 4、桌面创建一个文件夹,并在终端cd到该文件目录下,然后输入命令:touch apple-app-site-association创建一个苹果严格要求的命名格式的文件,且没有任何后缀,并复制黏贴下面的代码:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "teamID.bundleID",
"paths": [ "*" ]
}
]
}
}
参数说明
appID:开发者账号的teamID.项目的bundleID
(注意:两个ID是用.拼接的)
paths:需要显示“打开”悬浮窗的页面路径,如果需要在指定页面显示,则需要修改这个参数为指定的页面的路径,否则直接使用通配符就好,如代码中写的
验证
-
1、文件生成后,放到项目中
Associated Domains
配置的域名的根目录下。 -
2、手机安装App后,在浏览器中输入域名,就可以看到页面中显示了“打开”的悬浮窗,苹果会自动验证我们放在根目录下的文件是否有效,并且App会自动从我们的服务器上下载这个文件,如果手机上没有安装这个App,那么浏览器中显示的页面是不会有“打开”的悬浮窗。
-
3、点击“打开”按钮,成功唤起了App;在微信中打开我们的域名,发现没有“打开”按钮,没事,一般都会试一下通过浏览器打开,点一下发现直接唤起App了,说明这就OK了,完活儿。
-
4、如果浏览器中没有显示“打开”的悬浮窗,也可以用测试工具试一下自己的域名是否配置成功
(这个工具有点奇怪,每次都得loading很长时间才行,但是我的网络又没有问题)
,直接输入配置的域名,点Test URL
就好。

- 5、通过Universal Links唤起App后,如果有传参数的话,在项目中如何获取呢?只需要在appdelegate中添加下面的方法就行了,如下:
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *url = userActivity.webpageURL;
NSLog(@"url = %@",url.absoluteString);
}
return YES;
}
网友评论