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

React Native iOS端自动OTP填充失效问题及解决方案求助

react-native-otp-verify iOS支持情况与替代方案

react-native-otp-verify仅针对Android平台实现了基于SMS Retriever API的验证码自动填充功能,iOS端无官方支持,这是你收到"不支持"提示的原因。

iOS端可行解决方案

方案1:iOS系统原生自动填充(推荐)

iOS 12及以上版本原生支持SMS验证码自动填充,无需额外依赖第三方库,只需给验证码输入框配置对应属性:

  • 给TextInput添加textContentType="oneTimeCode"属性
  • 配合keyboardType="number-pad"适配数字验证码场景
    示例代码:
import { TextInput } from 'react-native';

<TextInput
  keyboardType="number-pad"
  textContentType="oneTimeCode"
  onChangeText={(inputCode) => {
    // 处理验证码输入逻辑
  }}
  placeholder="输入验证码"
/>

用户收到含验证码的短信后,iOS系统会自动在键盘上方弹出验证码建议,点击即可完成填充。

方案2:使用跨平台OTP输入库

如果需要定制化的OTP输入UI(如带分隔符的输入框),可以选择支持双平台的react-native-otp-input,它兼容iOS原生自动填充:

  1. 安装依赖:
npm install react-native-otp-input
# 或使用yarn
yarn add react-native-otp-input
  1. 组件使用示例:
import OTPInputView from 'react-native-otp-input';

<OTPInputView
  pinCount={6}
  keyboardType="number-pad"
  textContentType="oneTimeCode"
  style={{ width: '100%', height: 200 }}
  onCodeFilled={(verifiedCode) => {
    // 验证码输入完成后的逻辑
  }}
/>

方案3:手动短信监听(不推荐,审核风险)

若需完全自定义验证码提取逻辑,可使用react-native-sms-listener监听短信内容,通过正则匹配提取验证码后自动填充。但注意:

  • iOS需申请SMS权限,App Store审核时可能因权限过度申请被拒
  • 需处理短信内容的正则匹配逻辑,适配不同格式的验证码短信

内容的提问来源于stack exchange,提问作者umair ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:42:34