背景:公司要重启一个项目(中间 2 年没更新),老版的微信 sdk 急需更新...
第一步、定义 kUniversalLink 常量(以微信公众平台配置为准)
NSString * const kUniversalLink = @"https://*.*.com/";
第二步、appStoreConnect 的 identifier 中选择应用 勾选 Associated Domains
并根据应用创建 apple-app-site-association 文件,上传到 kUniversalLink 的服务器根目录, 将链接复制到备忘录,点击链接手机可以下载为准(web 下载可能会被屏蔽)
{
"applinks": {
"apps": [],
"details": [
{
"appID":"*.*",
"paths": [ "/kop/*"]
},
{
"appID": "*.*",
"paths": [ "/ecp/*" ]
}
]
}
}
appID: Team ID + 点 + Bundle ID
单个应用 details 中只需要一个即可,多个应用必须集合在一起,用一个文件,不然会出现互相覆盖的情况。
第三步、项目中点击Capability,选择Associated Domains,并双击添加,如下图:
2211603440215_.pic.jpg注意此处和微信公众平台 UniversalLink 的区别。
第四步、应用配置URL Scheme (URL Types)
app 配置URL Scheme.png注意:支付宝等 URL Identifer 必填,不然掉不起来!!!
第五步、应用配置白名单
image第六步、ATS配置:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
第七步、ATS配置:
ShareSDK 平台进行分享设置
ShareSDK 第三方平台的相关配置指导文档
ShareSDK文档
附:universal links 据 mob 工作人员说可以用他们的,就不用上传服务器了,更加简单高效。
apple-app-site-association 配置好之后通过 https://域名/kop/, https://域名/ecp/可以打开对应的 app,若要通过接口传参则需要匹配对应的网站
并调用方法:
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
通用链接的缺点
通用链接对于开发人员来说是一个好主意, 但也有一些缺点可能会导致不受青睐。
-
通用链接只适用于 iOS 9 +
-
通用链接总是会返回到先前创建的网页
如果你想退回主页或与 APP 完全不不相关的网站?实现这一目标需要一些额外的工作, 要配置一个网页可以指引用户到你的目标页面。 此外, 如果你没有一个网站的话, 这将会是一个不可能的解决方案。 -
使用通用链接, 开发者必须部署一个网站来关联 APP
-
APP 与网站之间的联系是由创建和托管在开发者网站上的配置文件搞定的
网友评论