uni-app ios一键登录无流量时报错-20201无SIM卡或当前网络环境不适合,不能用wifi吗?只能用流量?

发布于 1周前 作者 yuanlaile 来自 Uni-App

uni-app ios一键登录无流量时报错-20201无SIM卡或当前网络环境不适合,不能用wifi吗?只能用流量?

开发环境 版本号 项目创建方式
Windows win11 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:4.36

手机系统:iOS

手机系统版本号:iOS 18

手机厂商:苹果

手机机型:华为

页面类型:vue

vue版本:vue3

打包方式:云端

示例代码:

01:57:49.552 预加载登录失败,  [Object] {"errMsg":"preLogin:fail 当前网络环境不适合执行该操作,https://ask.dcloud.net.cn/article/282","code":30001}  at utils/uniapi.js:556
01:57:53.609 预加载登录失败,  [Object] {"errMsg":"preLogin:fail -20201无SIM卡","code":30005,"appid":"9DkFxVgZOP81mKQPTRB0D6","metada...} at utils/uniapi.js:556

操作步骤:

01:57:49.552 预加载登录失败,  [Object] {"errMsg":"preLogin:fail 当前网络环境不适合执行该操作,https://ask.dcloud.net.cn/article/282","code":30001}  at utils/uniapi.js:556
01:57:53.609 预加载登录失败,  [Object] {"errMsg":"preLogin:fail -20201无SIM卡","code":30005,"appid":"9DkFxVgZOP81mKQPTRB0D6","metada...} at utils/uniapi.js:556

预期结果:

01:57:49.552 预加载登录失败,  [Object] {"errMsg":"preLogin:fail 当前网络环境不适合执行该操作,https://ask.dcloud.net.cn/article/282","code":30001}  at utils/uniapi.js:556
01:57:53.609 预加载登录失败,  [Object] {"errMsg":"preLogin:fail -20201无SIM卡","code":30005,"appid":"9DkFxVgZOP81mKQPTRB0D6","metada...} at utils/uniapi.js:556

实际结果:

01:57:49.552 预加载登录失败,  [Object] {"errMsg":"preLogin:fail 当前网络环境不适合执行该操作,https://ask.dcloud.net.cn/article/282","code":30001}  at utils/uniapi.js:556
01:57:53.609 预加载登录失败,  [Object] {"errMsg":"preLogin:fail -20201无SIM卡","code":30005,"appid":"9DkFxVgZOP81mKQPTRB0D6","metada...} at utils/uniapi.js:556

bug描述:

01:57:49.552 预加载登录失败,  [Object] {"errMsg":"preLogin:fail 当前网络环境不适合执行该操作,https://ask.dcloud.net.cn/article/282","code":30001}  at utils/uniapi.js:556
01:57:53.609 预加载登录失败,  [Object] {"errMsg":"preLogin:fail -20201无SIM卡","code":30005,"appid":"9DkFxVgZOP81mKQPTRB0D6","metada...} at utils/uniapi.js:556

2 回复

是的。没有的话,运营商怎么识别你的手机号?文档有写。


针对您提到的uni-app在iOS平台上实现一键登录功能时,在无流量情况下报错“-20201无SIM卡或当前网络环境不适合”的问题,这通常是由于一键登录服务依赖于特定的网络环境(如蜂窝移动网络)来验证SIM卡信息。以下是一些可能的解决方案和代码示例,以帮助您更好地处理这种情况。

解决方案一:检查网络环境

在尝试一键登录之前,您可以先检查设备的网络环境,确保设备处于支持一键登录的网络环境中。以下是一个简单的示例代码,用于检查设备是否连接到蜂窝移动网络:

// 引入uni-app的网络API
const network = uni.getNetworkType();

// 检查网络类型是否为蜂窝移动网络
if (network === 'wwan') {
  // 尝试一键登录
  tryLogin();
} else {
  uni.showToast({
    title: '当前网络环境不适合一键登录,请切换到蜂窝移动网络',
    icon: 'none'
  });
}

function tryLogin() {
  // 一键登录的逻辑代码
  // 例如:调用第三方一键登录SDK
  // oneClickLoginSDK.login().then(result => {
  //   console.log('登录成功', result);
  // }).catch(error => {
  //   console.error('登录失败', error);
  // });
}

解决方案二:错误处理与提示

对于已经发生的错误,您可以在捕获异常时给出更明确的提示,并指导用户如何操作。例如:

function loginWithOneClick() {
  oneClickLoginSDK.login().then(result => {
    console.log('登录成功', result);
  }).catch(error => {
    if (error.code === '-20201') {
      uni.showToast({
        title: '无SIM卡或当前网络环境不适合一键登录',
        icon: 'none'
      });
    } else {
      uni.showToast({
        title: '登录失败,请重试',
        icon: 'none'
      });
    }
  });
}

注意事项

  1. 依赖网络环境:一键登录功能通常依赖于蜂窝移动网络来验证SIM卡信息,因此在Wi-Fi环境下可能无法正常工作。
  2. 用户引导:在应用中提供明确的错误提示和引导,帮助用户理解问题所在并采取相应的解决措施。
  3. SDK文档:查阅您使用的一键登录SDK的文档,了解其对网络环境的具体要求和处理方式。

通过上述方法,您可以更好地处理uni-app在iOS平台上实现一键登录功能时遇到的网络环境问题。希望这些示例代码对您有所帮助!

回到顶部