近来公司项目全年升级iOS9,新项目也不例外。查看微信分享已全面支持Universal Links这种方式,于是动手配置。下面介绍下我在配置过程中所遇到的坑:
1. HTTPS WEB服务器能够正常外部访问
![](https://img.haomeiwen.com/i796472/4fb83770a7993464.png)
我配置过程中有遇到后台给了我一个仅内网可以访问的链接,然后手机、开发电脑也是连接公司的内网,导致文件下载没问题,却校验报错。另这个webURL一般选择项目官网的二级域名。
2. 校验结果正确性解读
![](https://img.haomeiwen.com/i796472/851f4915b731b88f.png)
- 上面这种校验结果也是正确的,因为我的项目还没有上线,所以很多数据读取不到,但这并不影响使用;
- 校验的所输入的链接为:
https://xx.xx.co/apple-app-site-association
,xx.xx.co
是你的web服务器URL。
3. iOS13设备在charles看不到apple-app-site-association下载成功,iOS12可以。
![](https://img.haomeiwen.com/i796472/d7e90992717c8e85.png)
![](https://img.haomeiwen.com/i796472/e426d20ff1c1da6e.png)
以上两种是我遇到的问题,iOS13虽失败,也是可以分享成功的,不影响使用,个人猜测为苹果在iOS13中加强了安全政策,使之不可见。欢迎有懂的同学不吝赐教。
4. 校验APP的Universal Links配置是否成功
![](https://img.haomeiwen.com/i796472/4387213708fe8da0.png)
如果你的
apple-app-site-association
文件的 paths
有前置参数,如"paths": ["/sdksample/*"]
,那你的Universal Links为https://xx.xx.co/sdksample/
; 如果"paths": ["*"]
,则为https://xx.xx.co/
。
5. 确保Universal Links校验成功,并配置完微信分享。然后分享时出现应用拉起微信后经过授权动画后直接返回问题
![](https://img.haomeiwen.com/i796472/55f9fc230ceb784f.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官方工具
网友评论