从网络应用程序打开短信编辑器

问题描述 投票:0回答:5

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

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。

javascript android html ios windows-phone
5个回答
8
投票

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

正文 = 短信正文

归功于:- https://codepen.io/gil--/pen/KMaRmp


4
投票

这适用于 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=

之后的文本进行编码

来源:朱利安克洛茨


2
投票

如果您想填充正文而不是电话号码,这适用于 Android 和 IOS8+

这是链接

关键是:“短信:?&”


0
投票

你可以用

打开它
window.open('sms:+1111111111')

它会打开消息应用程序并准备为该号码写一些东西

注:在 Android 中测试


-1
投票

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

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

打开消息应用程序。

当发出具有此类 url 的请求时,应用程序可以注册要调用的自定义协议方案。但据我了解你的解决方案是一个纯网络应用程序,所以答案是否定的,这是不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.