Universal Links配置及使用

简介:

Universal Links 是一个可以实现外部链接跳转应用的功能

当你支持通用链接时,iOS用户可以点击你网站的链接,无需通过Safari就可以无缝地重定向到你安装的应用程序。如果你的应用程序没有安装,点击到你网站的链接就会在Safari浏览器中打开你的网站。

苹果开发者中心的配置

登录苹果开发者后台,在设置证书的页面找到 Identifiers -> App ID里,在对应的Bundle Identifier下勾选 Associated Domains如下图
1.png
然后需要重新配置Development Provisioning Profile ,下载并安装。(如果已经配置过可以忽略)
记住 Team IDBundle ID后面会用到
2.png

Xcode里面配置

打开工程在 TARGETS -->Signing &Capabilities -->Associated Domains
4.png
注意不要加http或者https

创建并上传apple-app-site-association文件到服务器

格式如下:
  • 创建一个名为apple-app-site-association的文件,没有后缀,但是是json格式。

  • details:键的值添加为字典数组的JSON表示,每个应用程序一个字典

  • apps:必须设置为[]

  • appID:的结构为TeamID.bundleID

  • paths:可以随便写注意格式 /paths/*

  • 上传到服务器的根目录下或者.well-known目录下,且能通过网址https://<fully qualified domain>/apple-app-site-association或者https://<fully qualified domain>/.well-known/apple-app-site-association访问这个文件,不论是否是下载还是直接在浏览器中能直接看到文件内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"applinks": {
"apps": [],
"details": [{
"appID": "8NZL4MFD85.com.91bihu.Glaucus",
"paths": ["/Glaucus/*"]
},{
"appID": "8NZL4MFD85.com.91bihu.Glaucus",
"paths": ["*"]
},
{
"appID": "835YHXY73B.com.91bihu.Glaucus",
"paths": ["*"]
},
{
"appID": "835YHXY73B.com.91bihu.Glaucus",
"paths": ["/Glaucus/*"]
}]
}
}
注意:
  • 开发和生产环境的TeamID可能不一致需要分别配置

  • 服务器需要支持https

测试

使用

使用以微信分享为例

  • 在微信开放平台配置Universal Links
3.png
  • info.plist文件中添加健值LSApplicationQueriesSchemes中包含weixinweixinULAPI

    5.png
  • AppDelegate.m里面添加如下代码

1
2
3
4
5
6
7
8
-(BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
return [WXApi handleOpenURL:url delegate:self];
}
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}

剩下的部分看微信API

参考:

苹果官网Support Universal Links

微信开放平台