在移动端(iOS 和 Android)实现点击链接直接跳转到发短信界面,*标准且通用的方法是使用 sms: 协议的 HTML 锚点标签。以下是具体的实现方案及不同场景的细节:
1. 基础用法:指定收件人
这是*常见的用法,点击后会打开短信应用,并自动填充手机号。
HTML
<a href="sms:10086">发送短信给 10086</a>
2. 进阶用法:指定收件人和短信内容
如果你希望在打开短信界面时,预填好一段文字内容,可以按照以下方式编写。注意:iOS 和 Android 在预填内容的参数上略有不同。
兼容性写法(推荐)
目前大多数现代移动浏览器(包括 iOS 8+ 和 Android)都能识别 ; 或 ? 作为分隔符,但为了保证*高兼容性,建议如下处理:
- Android: 使用
?body= - iOS (新版): 使用
&body=或;body=
通用的*佳实践代码:
HTML
<a href="sms:10086?body=你好,我想咨询套餐业务">点击发短信申请业务</a>
3. 多收件人发送
如果你需要同时给多个人发短信,可以用逗号分隔手机号:
HTML
<a href="sms:10086,10010?body=你好">群发短信</a>
4. 核心注意事项
- URL 编码: 如果预填的
body内容包含特殊字符(如空格、换行、#、& 等),必须进行 URL Encode。- 例如:
body=Hello World应写为body=Hello%20World。
- 例如:
- 浏览器差异:
- 微信内置浏览器: 微信对
sms:协议的支持比较反复。在某些版本中可能会拦截该跳转,通常会弹窗提示“正在离开微信”。 - PC 端: 在电脑浏览器上点击此类链接通常无效,或者会尝试调起系统自带的同步协作应用(如 macOS 的 iMessage)。
- 微信内置浏览器: 微信对
- 样式优化:为了让它看起来更像一个按钮,建议配合 CSS 使用:
.sms-btn {
display: inline-block;
padding: 10px 20px;
background-color: #007AFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
5. 方案对比表
| 功能 | 语法示例 | 适用场景 |
| 仅号码 | sms:123456 | 仅引导用户发送,无需固定格式 |
| 带内容 | sms:123456?body=内容 | 预约、验证、快捷报备 |
| 多号码 | sms:123,456 | 简单的通知分发 |
