首先解决微信支付和友盟sdk冲突
1 如果友盟分享微信导入的精简版,就不会和微信pod 'WechatOpenSDK'的这个库冲突,用起来完全没有问题,可以满足友盟第三方登录,分享,微信支付功能,UniversalLink,(小程序也可以满足,后面再说)。
2 因为项目加入了微信小程序主动调起APP,然后就去看友盟的文档,发现了这么一句话
3 然后就想着更新为友盟微信完整版就好了,pod 'UMengUShare/Social/WeChat' 但是这个会和微信的sdk里面的libWeChatSDK.a 文件冲突,网上找到的方法是先删除友盟里面的WXApi.h、WXApiObject.h、libWeChatSDK.a 这几个文件,然后下载WechatOpenSDK带支付功能的版本替换对应的文件。这个时候运行没有问题就大功告成了,
其次是小程序主动调起APP。
1 经过多次尝试之后,发现 // 如果为微信小程序跳转,此处不做处理,result为NO
result = [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];
但是经过多次测试发现返回的依然是 YES.就没有办法判断回调让走微信了。最后发现友盟还是新增了小程序主动调起APP的注册方法。友盟文档这不坑爹吗?也不主动说明一下。
所以我现在怀疑,可能友盟微信精简版,当小程序主动调起的时候,也可以拿到小程序传递过来的参数。有时间的话,我去做个试验。
还有一个小插曲是,发现我的第三方登录。回调之后竟然开始走UniversalLink的这个方法了,
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
可以没有发现友盟在这个方法里面有回调啊。再去仔细看文档,发现友盟已经新增了。方法。写在这个回调里面就可以了。
if ([[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil]) { return YES; }
解决这个过程当中还遇到几个小失误也一起分享一下。
1 因为项目中分了好几个targers.发现有的targers竟然麽易写
2 还有分享的收,显示我的应用处于未验证状态,马上要上线了也挺慌的,以前是没有的,发现好多网友都有遇到这个问题,最后查看微信文档是因为升级sdk 后应用被加入了白名单,如果你注册微信的时候自检正常,那么过一天之后未认证应用的状态这个就会自动消失。
遇到的问题,主要是做一个记录,欢迎交流
如果出现分享显示微信未认证 查看微信官方的回复是否按照文档里面的步骤操作正确。 微信分享未认证 状态文档
参考链接