iOS13之后,H5打开App时使用scheme的方式会在打开App后跳转到下载链接页面。参考知乎的实现方式,我们决定升级成Universal Link的方式,对用户更加友好。
以下为具体步骤:
-
在开发者中心证书配置页找到Identifiers,然后点击项目的BundleID进入详情页,选中Associated Domains,如截图所示。
图片.png -
参考知乎的apple-app-site-association文件(https://oia.zhihu.com/apple-app-site-association),写一份放到H5目录下(文件修改参考截图,多余的删掉即可)
- 文件不要带后缀
- 必须为https
- 浏览器访问https://
你的下载页地址
/apple-app-site-association时会返回apple-app-site-association文件的内容(不是下载,是会把文件内容展示出来,这两个有区别)
图片.png
-
在Xcode中配置applink,参考截图
图片.png -
在AppDelegate.m文件中配置以下代码:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
if (![userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
return YES;
}
NSURL *jumpUrl = userActivity.webpageURL; // 这个URL就是你跳转的那个URL,下载页地址,想要传参数可以直接在URL后面拼接
// TODO:在这里进行跳转具体页面的操作
return YES;
}
- 注意事项:
- H5的域名和下载页的域名不能是同一个域名
- 浏览器访问和Xcode中配置的都是下载页的域名
- H5分享页不要求https,但下载页必须是https
在H5中的实现
- 在分享页面加一个在App中打开按钮
- 点击跳转下载页面
- 此时若已安装App,则自动打开App。没有安装App会跳转到下载页
- 点击下载页的立即下载按钮,重定向到App Store即可
有问题留言喔
网友评论