美文网首页
iOS Universal Links 踩到的坑

iOS Universal Links 踩到的坑

作者: devmao | 来源:发表于2020-02-28 10:54 被阅读0次

近来公司项目全年升级iOS9,新项目也不例外。查看微信分享已全面支持Universal Links这种方式,于是动手配置。下面介绍下我在配置过程中所遇到的坑:

1. HTTPS WEB服务器能够正常外部访问

WX20200228-095939.png
我配置过程中有遇到后台给了我一个仅内网可以访问的链接,然后手机、开发电脑也是连接公司的内网,导致文件下载没问题,却校验报错。另这个webURL一般选择项目官网的二级域名。

2. 校验结果正确性解读

这种校验结果也正确.png
  1. 上面这种校验结果也是正确的,因为我的项目还没有上线,所以很多数据读取不到,但这并不影响使用;
  2. 校验的所输入的链接为:https://xx.xx.co/apple-app-site-associationxx.xx.co是你的web服务器URL。

3. iOS13设备在charles看不到apple-app-site-association下载成功,iOS12可以。

iOS12 成功
iOS13 失败

以上两种是我遇到的问题,iOS13虽失败,也是可以分享成功的,不影响使用,个人猜测为苹果在iOS13中加强了安全政策,使之不可见。欢迎有懂的同学不吝赐教。

4. 校验APP的Universal Links配置是否成功

来源微信分享官方文档.png
如果你的 apple-app-site-association 文件的 paths 有前置参数,如"paths": ["/sdksample/*"] ,那你的Universal Links为https://xx.xx.co/sdksample/; 如果"paths": ["*"],则为https://xx.xx.co/

5. 确保Universal Links校验成功,并配置完微信分享。然后分享时出现应用拉起微信后经过授权动画后直接返回问题

授权动画.png

我的原因是appdelegate里少写了两个代理方法:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,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];
}

6. 服务端存放不带后缀的apple-app-site-association文件,要求浏览器打开后以文档形式阅读,不可以是下载。

在服务端配置apple-app-site-association文件(不带任何后缀)

总结

其实问题5微信官方分享文档里有明确讲解与提醒,是自己没认真看文档。在此提醒大家,出现问题一定要耐心并细心的研究Universal Links apple官方配置文档 以及 微信分享官方配置文档,相信90%以上的问题都会顺利解决,这样比漫天全网找答案效率会高很多。
希望能帮助到有需要的人。大家有问题也可以评论区留言,我看到会回复。

参考资料

1. Universal Links apple官方配置文档
2. 微信分享官方配置文档
3. Universal Links验证apple官方工具

相关文章

网友评论

      本文标题:iOS Universal Links 踩到的坑

      本文链接:https://www.haomeiwen.com/subject/rvdkhhtx.html