window.open(“sms:...”)适用于android,但不适用于ios

时间:2016-04-01 15:41:29

标签: javascript ios iphone sms window.open

我有这个功能,点击后预先填写短信。这适用于Android,但在任何版本的iOS上,它只是打开新的空窗口。任何想法,为什么?

 var ua = navigator.userAgent.toLowerCase();
    var url;
        
    if (ua.indexOf("iphone") > -1 || ua.indexOf("ipad") > -1)
    {
   

    var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
    var ver = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
    if (ver[0] >= 8)
    {
    url = "sms:&body=" + encodeURIComponent("Hello guys, this is an awesome app! Check it out http://www.myurl.com/webapp/index.html");
    }
    else
    {
    url = "sms:;body=" + encodeURIComponent("Hello guys, this is an awesome app! Check it out http://www.myurlcom/webapp/index.html");
    }
    
    
    }
    else
    url = "sms:?body=" + encodeURIComponent("Hello guys, this is an awesome app! Check it out http://www.muyrl.com/webapp/index.html");

    window.open (url,'_system')

2 个答案:

答案 0 :(得分:0)

我尝试使用正确的HTML链接,它在iOS 9上运行良好。

<a href="sms:+467111111111?&body=Hello my friend">Send SMS</a>

所以我可以看到两个潜在的问题:

  • 我可能无法使用window.open();
  • 仅在提供号码时才有效

修改:我设法让它在没有数字的情况下工作

<a href="sms:?&body=Hello my friend">Send SMS</a>

所以它似乎来自window.open()

答案 1 :(得分:0)

以下链接可帮助您测试所有不同的组合。 只需从手机上打开即可。

对我有用的是:href="sms://&body=TEST"

list of sms combination format here