一、现象
这里以我遇到问题的华为机型举例:华为手机mate20(android 10),只需满足以下任意一个条件即可正常走回调WXEntryActivity登录,分享。如果你以下条件都不满足,则会出现微信登录授权后无法回调WXEntryActivity导致登录无反应问题,强烈建议你尝试满足以下5种条件的任意一个条件来验证。
1.用4g安装后可以正常登录(且后面切换为wifi也可),使用wifif安装,无法登录(切回4g也不可),区别在于安装时使用的是何种网络
2.取消微信的支付保护即可正常登录,分享
3.在华为市场安装的,可正常登录,分享
4.用开发工具android studio连接手机直接运行可以正常登录,分享(前提是将debug模式下运行的签名配置和正式打包的一致,不然运行微信登录是唤不醒的)(支付保护中心建议禁用usb调试就是因为这个能绕开华为支付保护中心的限制)
5.不引入百度联盟的包,可以正常登录,分享(猜测可能其他的第三方广告sdk也一样,看你用的是哪个,可以自己去剔除验证)
二、得出的结论
部分华为手机(有些华为andorid10的可以,所以标注了下部分)在华为支付保护中心将微信设置为保护状态下,华为手机会拦截安装来源为非华为市场,且在wifi状态下安装的含有百度联盟广告sdk包应用(但不会拦截调试模式下运行的应用调用的微信登录,分享)。
其实仔细想想也很合理,华为这么做是为了对支付保护中心保护的应用(比如微信),在被其他第三方应用唤起调用的时候,会检测该第三方应用是否为华为市场下载的安全应用,如果不是则会检测是否为恶意应用(即是否含有一些广告sdk),是否为风险wifi网络。
三、解决办法
知道了原因其实解决起来就有方向了,其实就是上面那5个条件,只需让用户的使用情况满足任意一条即可:
1.要么让用户使用4g进行安装
2.要么让用户取消对微信的支付保护
3.要么引导用户去华为市场进行下载安装
4.要么直接连接usb进行调试安装
5.要么剔除百度联盟的包
但是,你会发现 2,4 这两点引导用户是不太理想的,所以只能从1,,3,5这三点去引导和处理才符合逻辑,
所以最终的解决办法是这样的:引导你们华为手机的用户去华为市场进行下载安装(华为也是这么建议的),如果你们的应用没有在华为市场上架,那只有反馈给你们的业务或者老板进行评估是否需要考虑剔除相关的广告SDK包(如果允许的话),如果不考虑剔除,那只能联系并引导这部分用户重新卸载使用4g进行安装。
四、欢迎留言遇到问题的机型
遇到相关问题的兄弟,如果该篇文章对你们有用,欢迎你们留言发出来你们遇到该问题的机型,(如我遇到的mate20,android 10),以便我对该问题的机型方面进行统计。
有问题欢迎提出,因为我当时也被这个问题搞蒙过,希望能帮到你们
华为手机mate30,鸿蒙OS 2.00版本,按照你的条件,1、2、3、4条都试过了,APP没有集成百度,但是都不行,可以拉起微信小程序,在其他的手机例如小米,三星上可以正常走WXEntryActivity回调,但是这台华为的就是不走回调,而且这台mate30 之前是Android 10.0的系统时,是可以拉起小程序并走回调的,很奇怪,WXEntryActivity的onCreate方法都没走
详细描述:我们发现您的应用存在功能不完善问题。请参考《审核指南》第3.4相关审核要求:https://developer.huawei.com/consumer/cn/doc/50104 测试步骤:登录界面点击微信或者手机图标登录 无响应 测试环境:Wi-Fi联网、中文环境、EMUI11.0(HUAWEI Mate 40 Pro)。 修改建议:请参考测试结果修复该问题,确保应用可以正常使用。请问是这样的问题吗
谁遇到过,个别机型分享 调不起分享页面的 华为为主
遇到一个华为nova手机无法唤起微信小程序,上述问题都排查之后发现是因为没有给微信悬浮窗权限:)
五星好评
你好,想问一下,我试了下华为,oppo,vivo,Android版本分别是10,9,8,都是一样的问题。我使用的是第三方sdk接入的,在debug模式下可以调起微信登录,收到用户信息,但是release模式就都调不起来,收不到回调,并且同样代码下微信分享已经接入成功了,不知道是什么问题?
都没有用,可能问题不一样吧
打得测试包,华为手机上一直唤不醒微信授权页面,小米9上第一次可以成功唤醒,之后就再也唤不醒。有大佬知道原因吗?
学习了,多谢