花了一天的时间解决微信分享的问题。简单把要注意的地方写在这里。
1、可以直接使用https的二级域名的,因为根域名的https证书都是收费的。二级域名有免费的证书。
2、Universal Link可以不带path。一般都用二级域名来区分不同的应用,所以可以不需要在后面跟path。
3、仔细阅读:
https://developers.weixin.qq.com/community/develop/doc/000ce0403bc9d0ea1a0a67f415b409?page=3#comment-list 这里可以解决大部分的问题。
4、跳转问题,使用底下的代码可以验证,ios代码增加了下面的代码后,错误的提示很 明显。
5、分享到微信,通过验证以后,不跳转到微信app。是因为ios中缺少了代码。在上述3的链接里,说的比较清楚。
辅助阅读 https://blog.csdn.net/wisudom/article/details/106431078
配置Universal Links
苹果端配置和微信端配置都比较简单。
注意App端,需要增加两个地方的修改Associated Domains,Keychain Access Groups
服务器端配置验证
尤其重要的是服务器端配置完成以后的验证。在服务器域名下配置apple-app-site-association
建议创建.well-known目录,手机端会优先访问这个目录下的文件。
apple-app-site-association 注意文件中需要配置的是(teamID+bundldId)这个不能错。
验证方法,在浏览器中输入 https://domain.com/.well-known/apple-app-site-association。 并检查下载的文件是否和你在线上配置的文件一直。 笔者配置时遇到浏览器缓存这个文件的问题。
微信端代码验证
增加以下代码,有助于验证信息。
//有助于解决问题 正式版本中注释掉
[WXApi startLogByLevel:1 logBlock:^(NSString * _Nonnull log) {NSLog(@"log %@",log); }];
[WXApi registerApp:@"xxxxxx" universalLink:@"https://xxxx.xxxxx.com/"];
//以下 在正式版本里需要注释掉
[WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult* result) { NSLog(@"%@, %u, %@, %@", @(step), result.success, result.errorInfo, result.suggestion);
}];