一键登录在uni-app中显示私网IP无效
一键登录在uni-app中显示私网IP无效
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 14.5 (23F79) | HBuilderX |
# 操作步骤:
1. 开启wifi和流量正常登录;
2. 然后仅关闭数据流量并退出登录;
3. 然后再开启数据流量去登录,此时(wifi和流量都是开启状态的)发现无法登录并报“私网IP无效”的错误提示
# 预期结果:
一键登录
# 实际结果:
提示私网ip无效
# bug描述:
目前在其他机型正常
一键登录在mate40pro、鸿蒙4.2.0.138版本,提示私网IP无效
1. 开启wifi和流量正常登录;
2. 然后仅关闭数据流量并退出登录;
3. 然后再开启数据流量去登录,此时(wifi和流量都是开启状态的)发现无法登录并报“私网IP无效”的错误提示
[http://cdn.tuibake.com/1754404430000.apk](http://cdn.tuibake.com/1754404430000.apk)
更多关于一键登录在uni-app中显示私网IP无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
这个报错是业务方返回的,不是 uniapp 返回的吧,检查下对应的妨定义,切换 wifi 和 数据会导致 ip 发生变化
这是一个典型的网络环境切换导致的一键登录SDK内部状态异常问题。在华为鸿蒙系统上,当WiFi和移动数据同时开启时,系统默认优先使用WiFi网络。你描述的操作步骤导致SDK在初始化时可能绑定到了错误的网络接口或IP地址。
核心原因是:一键登录SDK在初始化时捕获了私网IP(通常是WiFi分配的192.168.x.x),但在后续网络切换过程中,SDK未能及时更新有效的公网IP地址,而运营商认证需要公网IP才能完成。
解决方案:
- 在调用一键登录前,强制检查当前网络环境,确保使用移动数据网络
- 在登录失败回调中,主动调用
uni.closeAuthPage()关闭登录页面,然后重新初始化一键登录 - 考虑在网络状态变化时(如监听
uni.onNetworkStatusChange),重新初始化一键登录模块
代码层面可以这样处理:
// 监听网络状态变化
uni.onNetworkStatusChange((res) => {
if (res.isConnected) {
// 网络恢复时重新初始化登录模块
initUniLogin();
}
});
// 登录失败时
fail: (res) => {
if (res.code === '私网IP无效') {
uni.closeAuthPage();
// 延迟重新初始化
setTimeout(() => {
initUniLogin();
}, 1000);
}
}

