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

iPhone端HTML链接预填充短信正文(不填手机号)失败求助

解决iPhone上SMS链接预填正文却出现多余符号的问题

我之前帮不少开发者踩过iOS SMS URL Scheme的坑,你遇到的情况其实是iOS在处理不指定收件人、仅预填正文的场景时,对参数分隔符有特殊要求,而你当前用的格式刚好踩了这个坑。你写的 <a href="sms:?&body=look">sms</a> 里的 ?& 组合会被iOS错误解析成收件人字段的内容,所以收件人栏才会出现那些奇怪的符号。

正确的实现方式

针对iOS设备,要实现空收件人+预填正文,直接用分号 ; 作为参数的起始分隔符就行:

<a href="sms:;body=look">sms</a>

亲测这个格式在iOS上完全没问题——收件人栏会保持为空,正文直接被预填成「look」。

为啥原来的写法不行?

这里得说下iOS的小脾气:

  • 如果用 sms:?body=xxx,问号 ? 会被iOS当成收件人内容的一部分,直接显示在收件人栏里
  • 而 sms:;body=xxx 是iOS官方认可的无收件人场景下的参数传递方式,分号会被正确识别为参数分隔符,不会乱跑到收件人栏里

额外注意事项

  • 要是你的短信正文里有空格、感叹号这类特殊字符,记得要做URL编码。比如正文是「Look at this!」,编码后就变成 Look%20at%20this%21,最终链接就是:
    <a href="sms:;body=Look%20at%20this%21">sms</a>
    
  • 这个格式仅适配iOS,Android一般支持 sms:?body=xxx 的写法。如果要兼容双平台,可以通过判断用户设备的UA来输出对应的链接格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 20:57:53