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

React Native应用访问短信的方法、限制及跨平台差异咨询

React Native 短信访问相关问题解答

实现方式

主要分为两种路径:

  • 原生模块定制:
    • 安卓:通过ContentResolver访问系统短信数据库(content://sms/),封装成RN原生模块供JS调用,但必须先申请READ_SMS权限。
    • iOS:由于系统限制,无法直接读取短信,仅能通过系统自动填充API实现验证码获取,或调用MessageUI发送短信(需用户确认)。
  • 第三方库集成:直接使用社区成熟的RN库,快速实现短信相关功能,无需自行编写原生代码。

平台限制说明

  • iOS:苹果从iOS 10开始严格限制第三方应用读取短信,任何直接访问短信数据库的行为都会被App Store拒审。仅支持通过系统自动填充机制获取验证码(用户需开启系统自动填充功能),其他场景无法读取短信内容。
  • 安卓:安卓10(API 29)及以后,读取短信需要READ_SMS权限,但Google Play对该权限的使用场景审核严格,非必要场景(如验证码、短信备份)申请权限会导致应用被拒登。安卓11+还要求权限申请时必须明确说明用途,用户授权流程更繁琐。

实用第三方库

  • react-native-sms-retriever:安卓专用,通过监听短信广播获取验证码,无需READ_SMS权限,合规性高,适合验证码自动填充场景。
  • react-native-otp-verify:支持安卓和iOS,安卓用广播监听,iOS用系统自动填充,专注于验证码读取,适配性好。
  • react-native-sms:安卓端可读取短信列表、发送短信,但iOS端功能受限,使用前需确认平台需求。

安卓与iOS核心差异

维度安卓情况iOS情况
权限要求需要申请READ_SMS/RECEIVE_SMS,安卓11+需明确说明权限用途无直接读取短信的权限,验证码自动填充无需额外权限(依赖系统设置)
功能范围可读取全部短信内容、短信列表,支持发送短信仅能通过系统自动填充获取验证码,发送短信需调用系统短信界面(用户操作确认)
审核风险滥用权限会被Google Play拒登或下架直接读取短信的行为会被App Store拒审

需遵循的政策

  • App Store审核指南:禁止应用未经用户许可读取短信,仅允许使用系统自动填充机制处理验证码,违规直接拒审。
  • Google Play政策:申请READ_SMS权限必须有合理场景(如验证码、短信备份),需在隐私政策和权限申请弹窗中明确告知用户用途,滥用会导致下架。
  • 隐私法规:无论安卓还是iOS,都需在隐私政策中明确说明短信数据的收集、使用、存储方式,符合GDPR、CCPA等地区的隐私要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:52:46