我正在寻找一种解决方案,允许我从网页打开本机短信编辑器。消息正文必须预先填充,并且接收者的电话号码必须为空。
stackoverflow 中有很多建议,可以通过 javascript 格式化锚点或重定向,但不幸的是,这些解决方案已经过时,要么无法按原样工作,要么出于安全原因被删除。
我已经在各种平台上测试了以下格式,但不幸的是它们并不适用于所有设备。我正在寻找通用解决方案或库来满足我提到的要求。
<a href="sms:;body=Hello world">Send SMS</a>
<a href="sms:;body=Hello%20world">Send SMS</a>
以前可以在 IOS 设备上运行,但现在不再运行了。显然,只有当您提供联系人中的电话号码时,预填充的正文才有效。
<a href="sms:?body=Hello world">Send SMS</a>
<a href="sms:?body=Hello%20world">Send SMS</a>
适用于大多数 Android 设备。打开短信编辑器,但只有某些版本允许预填充正文。
Windows Phone 似乎没有做任何事情。
我开始怀疑这是否只是一个无休止的兼容性问题沼泽。 Web 应用程序构建的技术是 ASP.NET MVC 5。
100% 工作
// 适用于安卓
if(navigator.userAgent.match(/Android/i)){
window.open('sms://1900/?body=encodeURIComponent('sms body......'),'_blank')
}
// 适用于 IOS
if(navigator.userAgent.match(/iPhone/i)){
window.open('sms://1900/&body=encodeURIComponent('sms body......'),'_blank')
}
将 1900 替换为您要发送消息的号码
正文 = 短信正文
这适用于 iOS 8(已验证):
<p>Open <a href="#" id="myLink">SMS</a>.</p>
<script>
$('#myLink').click(function () {
window.open('sms:&body=My%20text%20for%20iOS%208', '_self');
return false;
});
</script>
这应该适用于iOS 5,6:
<p>Open <a href="#" id="myLink">SMS</a>.</p>
<script>
$('#myLink').click(function () {
window.open('sms:;body=My%20text%20for%20iOS%205', '_self');
return false;
});
</script>
注意
sms:&
适用于 iOS 8,sms:;
适用于 iOS 5,6(以及 sms:?
适用于 Android)。
记得对
body=
之后的文本进行编码
来源:朱利安克洛茨
如果您想填充正文而不是电话号码,这适用于 Android 和 IOS8+
这是链接
关键是:“短信:?&”
你可以用
打开它window.open('sms:+1111111111')
它会打开消息应用程序并准备为该号码写一些东西
注:在 Android 中测试
无法添加文字,只能添加电话号码,以便
<a href="sms:+12345678901">sms link</a>
打开消息应用程序。
当发出具有此类 url 的请求时,应用程序可以注册要调用的自定义协议方案。但据我了解你的解决方案是一个纯网络应用程序,所以答案是否定的,这是不可能的。