uni-app 苹果手机双卡一键登录获取手机号异常

uni-app 苹果手机双卡一键登录获取手机号异常

操作步骤:

点击一键登录,获取手机号,然后切换卡。再次启动app,点击一键登录。获取到的手机号还是之前的

预期结果:

点击一键登录,获取手机号,然后切换卡。再次启动app,点击一键登录。获取到切换后的最新的卡号

实际结果:

点击一键登录,获取手机号,然后切换卡。再次启动app,点击一键登录。获取到的手机号还是之前的

bug描述:

苹果用户两张卡都是同一运营商的情况下,切换流量卡后,使用一键登录,一直是一个手机号登录,无法切换到另一张手机号登录

2 回复

加群方式可见开发文档 https://uniapp.dcloud.net.cn/univerify.html#question “常见问题”下方

更多关于uni-app 苹果手机双卡一键登录获取手机号异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-app 中实现一键登录功能时,如果在苹果手机(尤其是双卡手机)上遇到获取手机号异常的问题,可能是由于以下原因导致的:


1. 双卡手机的网络选择问题

  • 问题原因:苹果双卡手机(如 iPhone XS 及以上机型)支持双卡双待,但一键登录功能通常只能获取到当前默认数据流量的 SIM 卡对应的手机号。
  • 解决方案
    • 确保用户在使用一键登录时,默认数据流量的 SIM 卡是正确的。
    • 提示用户切换到正确的 SIM 卡。
    • 在代码中检查当前网络状态,并给出明确的提示。

2. 运营商支持问题

  • 问题原因:一键登录功能依赖于运营商的网关能力,某些运营商可能不支持双卡手机的网关认证。
  • 解决方案
    • 确认当前 SIM 卡所属的运营商是否支持一键登录功能。
    • 如果不支持,可以降级为短信验证码登录。

3. uni-app 插件或 SDK 的兼容性问题

  • 问题原因uni-app 使用的一键登录插件(如 uni-login 或其他第三方 SDK)可能对双卡手机的兼容性不够完善。
  • 解决方案
    • 确保使用的插件或 SDK 是最新版本。
    • 联系插件或 SDK 的开发者,反馈问题并寻求解决方案。
    • 如果问题无法解决,可以考虑使用其他登录方式(如微信登录、短信验证码等)。

4. 苹果手机的隐私限制

  • 问题原因:iOS 系统对用户隐私有严格限制,可能会阻止获取手机号的操作。
  • 解决方案
    • 确保应用已经获取了用户的隐私权限(如网络权限、电话权限等)。
    • 在获取手机号之前,先提示用户授权。

5. 代码实现问题

  • 问题原因:代码逻辑可能存在缺陷,导致获取手机号失败。
  • 解决方案
    • 检查一键登录的逻辑,确保调用 API 的参数正确。
    • 捕获并打印错误日志,便于排查问题。

6. 服务器端问题

  • 问题原因:服务器端的一键登录接口可能存在问题,导致无法正确返回手机号。
  • 解决方案
    • 检查服务器端日志,确认接口是否正常工作。
    • 与服务器端开发人员协作,排查问题。

7. 用户手机号未绑定

  • 问题原因:用户可能未将手机号与当前应用绑定,导致无法获取手机号。
  • 解决方案
    • 提示用户先绑定手机号,然后再使用一键登录功能。

代码示例(uni-app 一键登录)

以下是一个简单的 uni-app 一键登录代码示例:

uni.login({
  provider: 'univerify', // 使用一键登录
  success: (res) => {
    console.log('一键登录成功', res);
    // 获取手机号
    uni.getPhoneNumber({
      success: (phoneRes) => {
        console.log('获取手机号成功', phoneRes);
        // 将手机号发送到服务器进行验证
      },
      fail: (phoneErr) => {
        console.error('获取手机号失败', phoneErr);
      }
    });
  },
  fail: (err) => {
    console.error('一键登录失败', err);
  }
});
回到顶部