Javascript 从web应用程序打开SMS编辑器

Javascript 从web应用程序打开SMS编辑器,javascript,android,html,ios,windows-phone,Javascript,Android,Html,Ios,Windows Phone,我正在寻找一个解决方案,允许我打开本机短信编辑器从网页上。邮件正文必须预先填充,接收者的电话号码必须为空 stackoverflow中有很多建议只是通过javascript格式化锚点或重定向,但不幸的是,这些解决方案已经过时,或者不能按原样工作,或者出于安全原因被剥离 我已经在各种平台上测试了以下格式,但不幸的是,它们不能在所有设备上工作。我正在寻找一个通用的解决方案或库来满足我提到的要求 <a href="sms:;body=Hello world">Send SMS</a&

我正在寻找一个解决方案,允许我打开本机短信编辑器从网页上。邮件正文必须预先填充,接收者的电话号码必须为空

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设备。打开SMS编辑器,但只有某些版本允许预填充正文

Windows Phone似乎什么都没做


我开始怀疑这是否只是一个无休止的兼容性问题的沼泽。构建web应用程序的技术是ASP.NET MVC 5。

无法添加文本,只能添加电话号码,以便

<a href="sms:+12345678901">sms link</a>

打开消息传递应用程序

当发出带有此类url的请求时,应用程序可以注册要调用的自定义协议方案。但据我所知,您的解决方案是一个纯web应用程序,因此答案是不可能的。

这在iOS 8上有效(已验证):

打开

$('#myLink')。单击(函数(){ window.open('sms:&body=My%20text%20for%20iOS%208','u self'); 返回false; });
这应该适用于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>
打开

$('#myLink')。单击(函数(){ window.open('sms:;body=My%20text%20for%20iOS%205','u self'); 返回false; });
注意,对于iOS 8,
sms:&
适用于iOS 5,6(和
sms:?
适用于Android)

记住在
body=


来源:

如果你想填充正文而不是电话号码,这对android和IOS8都适用+

这是我的笔迹

关键是:“短信:?&”

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替换为要发送消息的号码

正文=sms正文


归功于:-

谢谢,这真的帮助了我的PWA。我使用它时没有默认消息。if(navigator.userAgent.match(/Android/i)){window.open('sms://'+phoneNumber);}if(navigator.userAgent.match(/iPhone/i)){window.open('sms://'+phoneNumber);}
if(navigator.userAgent.match(/iPhone/i)){
           
 window.open('sms://1900/&body=encodeURIComponent('sms body......'),'_blank')
  
}