You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移动端Chrome无法检测到OTPCredential,是否已移除该支持?

关于Chrome移动端OTPCredential接口检测失败的问题解答

嘿,别担心,Chrome移动端的OTPCredential接口并没有被移除支持!你检测失败大概率是因为没满足它的启用条件,我给你拆解下关键限制点:

  • 必须在HTTPS环境下运行:这个接口是严格绑定HTTPS的,只有localhost(本地开发)能例外。如果你的移动端测试用的是HTTP域名或者裸IP,那'OTPCredential' in window肯定会返回false。
  • 只能在用户触发的交互中检测:OTPCredential属于需要用户主动授权的API,不能在页面加载时直接检测。比如你不能把检测代码写在window.onload里,必须绑定到点击按钮、触摸这类用户主动操作的事件回调中。
  • 浏览器权限要开启:部分安卓设备的Chrome默认可能没开“自动填充验证码”权限,你可以让用户去Chrome的「设置」→「密码和表单」→「自动填充表单数据」里确认相关选项已开启。
  • 避开定制版/精简版Chrome:有些手机厂商自带的定制Chrome或者精简版Chrome会阉割部分Web API,建议用官方标准版Chrome测试。

给你个符合要求的检测示例代码:

// 把检测逻辑绑定到用户点击事件里
document.querySelector('#get-otp-btn').addEventListener('click', async () => {
  if ('OTPCredential' in window) {
    try {
      const otpCredential = await navigator.credentials.get({
        otp: { transport: ['sms'] }
      });
      // 拿到验证码后可以直接填充到输入框
      document.getElementById('otp-input').value = otpCredential.code;
    } catch (error) {
      console.error('获取OTP出错:', error);
    }
  } else {
    alert('当前浏览器不支持自动读取OTP');
  }
});

要是按这些要求调整后还是检测不到,建议清除Chrome缓存或者更新到最新版本的官方Chrome,基本就能解决问题啦。

内容的提问来源于stack exchange,提问作者sudheer singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 18:47:57