uni-app 5+APP微信双开授权登录不弹出选择微信界面 5+demo同现问题
uni-app 5+APP微信双开授权登录不弹出选择微信界面 5+demo同现问题
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
HBuilderX | 3.1.2 |
产品分类:HTML5+
手机系统:Android
手机系统版本号:Android 10
手机厂商:华为
手机机型:mate20pro
打包方式:云端
App下载地址或H5网址:
https://appgallery.huawei.com/#/app/C103100055
示例代码:
plusReady:function(){
var authBtns = ['weixin', 'qq','apple']; //配置业务支持的第三方登录
//检查是否安装微信/QQ
plus.oauth.getServices(function(services) {
for (var i in services) {
var service = services[i];
that.auths[service.id] = service;
if (~authBtns.indexOf(service.id)) {
if(plus.os.name == 'iOS'){
switch (service.id) {
case "weixin":
var WXApi = plus.ios.import("WXApi");
if(WXApi.isWXAppInstalled()){
that.hasweixin=true
}
case "qq":
var TencentOAuth = plus.ios.import("TencentOAuth");
if(TencentOAuth && TencentOAuth.iphoneQQInstalled()){
that.hasqq=true
}
case "apple":
that.hasapple=true
break;
default:
break;
}
}
}
}
}, function(e) {
plus.nativeUI.closeWaiting()
plus.nativeUI.toast("认证信息失败2:" + e.message);
});
},
wxlogin:function(){
var auth = this.auths["weixin"]
auth.login(function(e){
auth.getUserInfo(function() {
// console.log(JSON.stringify(auth.userInfo))
}, function(e) {
plus.nativeUI.closeWaiting()
vant.Toast("认证信息失败1:" + e.message);
});
}, function(e) {
console.log(JSON.stringify(e))
plus.nativeUI.closeWaiting()
})
}
更多关于uni-app 5+APP微信双开授权登录不弹出选择微信界面 5+demo同现问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
华为现在有android11的系统吗 请确认一下描述信息的准确性?
更多关于uni-app 5+APP微信双开授权登录不弹出选择微信界面 5+demo同现问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
不好意思写错了,是安卓10.文字已经修改了
目前了解到的是旧版本微信SDK是支持多开分身的。6.6.5开始不支持多开分身。具体原因不明,新版本SDK集成的恰好是6.6.5的版本SDK。试了最新6.6.20依然无法支持多开。只能等微信这边更新支持了
我看很多大厂的应用都是可以支持多开的,他们应该也用的旧版本吧,咱们为什么不用旧版本的SDK呢
回复 霸王: 新版本适配android11 这个探讨过 已经升级了不准备降级SDK
这个问题通常是由于微信双开功能导致的授权登录异常。在华为等支持应用双开的手机上,当微信被双开后,标准的OAuth授权流程可能会出现问题。
解决方案建议:
-
首先检查是否在双开环境中运行,可以通过plus.runtime.launcher判断
-
对于双开环境,可以提示用户切换到主微信应用进行授权
-
检查微信SDK配置是否正确,特别是appid和universal link配置
-
在manifest.json中确认已正确配置微信登录所需的权限和参数
-
可以尝试捕获错误代码,常见的错误有:
- 微信未安装
- 签名不匹配
- 双开环境限制
-
对于华为手机,可能需要特殊处理,可以尝试:
if(plus.os.vendor === 'huawei') { // 华为手机特殊处理 }