1. 背景
设备上,当用户收到包含验证码的短信时,系统软键盘会自动识别并弹出验证码填充选项,提升用户登录/注册体验。然而,这一功能并非对所有短信格式都生效——iOS 对验证码短信的格式有特定的要求。
2. iOS 自动填充机制
iOS 12+ 引入了「自动填充验证码」(Autofill Verification Code)功能。系统通过检测短信内容中特定关键词,自动识别验证码并展示在 QuickType 栏中,用户只需轻点即可填充。
2.1 触发条件
iOS 要求短信内容必须包含 code 关键词(大小写不敏感),才会触发自动填充。
常用的可触发关键词包括:
codeverification codeauth codeone-time code
2.2 官方说明
Apple 官方文档指出,短信格式建议为:
Your verification code is: <#Code>
其中 <#Code> 是占位符,实际发送时替换为具体的验证码数字。
3. 实测验证
3.1 测试平台
| 平台 | 测试结果 |
|---|---|
| iOS 抖音 | ✅ 软键盘弹出验证码 |
| iOS 小红书 | ✅ 软键盘弹出验证码 |
3.2 结论
实测表明,包含 code 字样的短信格式在 iOS 上能够正常触发自动填充。
4. 当前问题
当前 APU 系统发送的短信验证码格式不包含 code 关键词,导致 iOS 端无法自动弹出验证码填充,用户需要手动输入,影响体验。
5. 建议方案
5.1 短信模板修改
建议将 APU 短信验证码模板修改为以下格式:
Your verification code is: XXXXXX
或:
Your verification code is XXXXXX
关键点:
- 必须出现
code字样 - 验证码数字紧跟在
code之后或冒号之后 - 整条短信尽量简洁,避免无关内容干扰识别
5.2 示例对比
| 类型 | 示例 | 是否触发自动填充 |
|---|---|---|
| ❌ 旧格式 | 您的验证码为:123456 | 否 |
| ✅ 新格式 | Your verification code is: 123456 | 是 |
| ✅ 新格式 | 您的验证码(code):123456 | 是(推荐中英文混用) |
推荐中英文混用方案:
您的验证码(Code)为:123456
既满足 iOS 关键词检测,又照顾国内用户阅读习惯。
6. 验证步骤
- 修改 APU 短信模板,加入
code关键词 - 在 iOS 真机上发送验证码
- 观察软键盘是否自动弹出验证码选项
- 确认点击验证码后能正确填充到输入框
7. 参考
- Apple Developer Documentation: Updating Your Code for SMS and Phone Numbers
- Futter的SMS自动填充插件 pub.dev/packages/pi…