最近领导说:以前老的友盟分享,分享到微信会有一个(未验证应用)标记。
解决问题的路就开始了。
因为是swift项目,pods使用framework,不能一键集成。于是按照友盟的文档,把组件化后的友盟库全部手动拖到项目里。
错误来了:
1、MobClick报错
友盟文档里说了,合并到了基础库里,改了一下头文件解决。
2、Universal Links问题:
新版本微信必须支持Universal Links,照着友盟的文档,后来又面向百度编程,把UL配上去了。
这些好搜索,照着做就好了。
接下来是深坑:
2.1 友盟开始报错了
https://developers.weixin.qq.com/community/develop/doc/0004e4afac0b40b2557a65ef251000
这篇反馈,写出了这位coder的绝望,友盟的回复也很玄学,改一改信息就好了?
很明显这里是不对的,于是不信邪的我,换成微信的SDK方法直接测试
2.2 微信也报错?
https://developers.weixin.qq.com/community/develop/doc/0004843ea80008d8440b6242a5ac00?_at=1602816121104
这篇文章的回复也同样令人窒息,微信支持说报一下日志?
在链接里点了几篇相似帖子看,微信建议照着文档调试,那就照着文档一步步来吧!
2.3 调试
微信和自己的项目,都通过Safari调试了,都可以通过UL唤起
问题到底在哪里?
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
微信这篇接入说明里,有调试这一步。
// WXApi.startLog(by: WXLogLevel.detail) { (log) in
// print("WeChatSDK: ", log);
// }
// WXApi.registerApp("你的SDK", universalLink: "你的Universal Link")
// WXApi.checkUniversalLinkReady { (step, result) in
// print("WeChatSDK: ", step.rawValue, result.success, result.errorInfo, result.suggestion)
// }
直接通过调试打印,每一步都没报错,可就是进了一下微信授权页面,就没动静了
那应该是步骤错了
2.4 WXULCheckStep一共有7步
转折来自于WXULCheckStep这个枚举
这里一共有7步,微信文档上说,checkUniversalLinkReady打印false的时候,就是出错了,我这里打印的都是true,但是到了第5步就没了下文。
进去这个枚举看,还有回调的剩下两步竟然没走!!!!!
问题精确到了点上,就猜到了可能是回调方法的问题,是不是写错了?
2.5 最后在微信的文档里发现惊喜
WXApi文件里有这样一个方法
image.png
加到appdelegate里面就好了。
至此通过微信直接调用分享已经打通
3、 友盟你是想干啥?
回调的问题测试好了,我又按照友盟的步骤来,把微信相关的重新写了一遍,发现又不行了!!!!
❓❓❓❓❓❓❓❓❓❓❓
又出现了玄学三联问
UMengShare<6.9.8>(Info):[UMSocialManager:442][SCI10006]分享/授权登录后如果无法返回应用(微信、QQ、微博等平台)。 https://developer.umeng.com/docs/66632/detail/67028?um_channel=sdk
UMengShare<6.9.8>(Info):[UMSocialWechatHandler:1118][SWI10007]微信分享报错提示,请请检查微信是否安装。 https://developer.umeng.com/docs/66632/detail/67042?um_channel=sdk
UMengShare<6.9.8>(Info):[UMSocialWechatHandler:1119][SWI10009]微信分享报错'由于invalid_app无法分享到微信。 https://developer.umeng.com/docs/66632/detail/67044?um_channel=sdk
经过测试,我把微信的注册方法取消注释,和友盟的注册方法同时写上,就不会出现这个问题了。那就是友盟没把Universal Link注册进去。虽然我已经在注册appid代码之前写了
UMSocialGlobal.shareInstance()?.universalLinkDic = [UMSocialPlatformType.wechatSession:"我的Universal Link"]
最后,我在友盟注册之前把微信的注册方法调用一遍,问题算是解决了吧。
还拉着我的小伙伴跟我一起找了半天资料,感谢他。
image.png
网友评论