fix(ns-login): 修复H5页面在微信App中点击登录无反应的问题

This commit is contained in:
2025-12-25 17:45:52 +08:00
parent 2c3786546c
commit b01de93eee
2 changed files with 36 additions and 1 deletions

View File

@@ -379,6 +379,36 @@ export default {
return false; return false;
} }
}, },
/**
* 判断是否在微信小程序的web-view中打开H5
* @returns {boolean} 是否在微信小程序的web-view中
*/
isWeChatMiniProgram() {
const userAgent = navigator.userAgent.toLowerCase();
// 微信小程序的web-view User-Agent会包含以下特征之一
const miniProgramIndicators = [
'miniprogram', // 普通微信小程序
'wxwork', // 企业微信小程序
'micromessenger/[0-9]+\.[0-9]+\.[0-9]+ nettype/wifi wxwebviewtype/1'
];
return miniProgramIndicators.some(indicator => {
if (typeof indicator === 'string' && indicator.includes('/')) {
// 正则表达式匹配
const regex = new RegExp(indicator, 'i');
return regex.test(userAgent);
}
return userAgent.includes(indicator);
});
},
/**
* 判断是否在微信浏览器中打开H5非小程序的web-view
* @returns {boolean} 是否在微信浏览器中打开的H5
*/
isWeChatBrowser() {
return isWeiXin() && !isWeChatMiniProgram();
},
/** /**
* 显示消息提示框 * 显示消息提示框
* @param {Object} params 参数 * @param {Object} params 参数

View File

@@ -209,11 +209,16 @@
// #endif // #endif
// #ifdef H5 // #ifdef H5
if (this.$util.isWeiXin()) { if (this.$util.isWeChatMiniProgram()) {
// 微信小程序环境,使用微信授权登录
let authData = uni.getStorageSync('authInfo'); let authData = uni.getStorageSync('authInfo');
if (authData) this.authLogin(authData); if (authData) this.authLogin(authData);
else this.getCode(); else this.getCode();
} else if (this.$util.isWeiXin()) {
// 微信浏览器环境,显示登录页面
this.toLogin();
} else { } else {
// 其他浏览器环境,显示登录页面
this.toLogin(); this.toLogin();
} }
// #endif // #endif