美文网首页ios实用技术
友盟分享到微信时Universal Links问题总结

友盟分享到微信时Universal Links问题总结

作者: 拔丝豌豆 | 来源:发表于2020-10-16 13:49 被阅读0次

    最近领导说:以前老的友盟分享,分享到微信会有一个(未验证应用)标记。
    解决问题的路就开始了。

    因为是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

    相关文章

      网友评论

        本文标题:友盟分享到微信时Universal Links问题总结

        本文链接:https://www.haomeiwen.com/subject/nudzpktx.html