新版本微信分享sdk(1.8.3)踩坑实录

第一个坑

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
{
    return [WXApi handleOpenURL:url delegate:self];
}

// 新增微信分享处理回调
// * 注意:如果不实现这个代理方法的话,会
// * 1、微信的自检方法只能进行到第5步并输出universal link fail,
// * 2、每次分享动作触发时都会显示正在连接的界面并跳转微信再跳转回app再跳转微信
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
{
    return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}

注意:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler

这个代理方法在新版本微信分享sdk接入时,必须实现,否则每次跳转都会有问题。

第二个坑

当修改bundleid后,重新修改apple-app-site-association之后,记得卸载上次调试的安装包,重新运行

接入指南:关于openSDK1.8.6及以上版本的更新说明 | 微信开放文档

UniversalLink配置步骤

1.制作apple-app-site-association文件,并放置在准备好的链接根目录下,让后台人员给你这个https的链接,一定要https的(该步骤主要时后台人员操作)。apple-app-site-association的内容如下:
{
"applinks": {
        "apps": [],
        "details": [
            {
                "appID": "Team ID.com.xxx.xxxx",
                "paths": ["/sdkexample/*"]
            }
        ]
    }
}

其实就是一个json,apps数组不用管,details里面填入对应得appID和paths。appID就是用前缀+bundleID的方式,在App Store应用后台可以查看此前缀。paths则是可访问APP的对应页面路径,APP Delegate有对应方法可以获取, 可添加多个paths。

微信的apple-app-site-association实例:https://help.wechat.com/apple-app-site-association

微信的例子universal link为 https://help.wechat.com/sdksample/ 

Team ID:登录你的开发者账号即可查看

2. 举例:在根下创建的目录名为你写的paths中sdkexample

填写Domains, 格式为applinks:UniversalLink的形式, 如applinks:demo.xxx.com,  注意这里必须为裸的域名,不要加https或者文件名

第三种 如果以上都配置没有问题,微信的check方法也都是通过的

1、使用WXMediaMessage的mediaObject,这里需要注意充当mediaObject的WXFileObject对应的fillData(NSData)属性不能为空

否则会调不起微信

第三个坑

因为apple-app-site-association更新后,苹果的cdn服务器不是马上更新,所以会有延时

https://developer.apple.com/documentation/xcode/supporting-associated-domains 

https://developer.apple.com/forums/thread/699401 

iOS Universal Link 校验不通过,检查步骤如下

 参考:https://www.jianshu.com/p/6e8ee6b37739

1、配置开发证书
略过。。。
2.配置Capabilitles
略过。。。
3.创建关联文件apple-app-site-association
{
"applinks": {
"apps": [],
"details": [
{
"appID": "Team ID.bundle ID",
"paths": [ "/app/", "/"]
},
{
"appID": "Team ID2.bundle ID2",
"paths": [ "" ]
}
]
}
}
注意
1、apple-app-site-association文件名没有后缀;
2、appID: teamId.yourapp’s bundle identifier。登陆开发者中心,在Account - Membership里面可以找到Team ID;
3、paths:设置你的app支持的路径,这个是要拼接到微信开放平台里去的;
4、一定要放在你的域名.well-known目录下面,比如:www.baidu.com/.well-known 亲测放在根目录下没有效果(当然你有效果当我没说);
4.测试Universal Link 是否成功
浏览器输入https://app-site-association.cdn-apple.com/a/v1/YourDomain这个链接查看,如果返回了apple-app-site-association的内容,表示已经成功。如果没有怎么办呢。终端输入curl -v https://app-site-association.cdn-apple.com/a/v1/YourDomain查看报错;
5.以上都没问题,直接浏览器输入Universal Link完整链接(一定要拼接apple-app-site-association文件里的路径),显示打开代表成功了;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值