位置重定向到“短信:123454”不适用于页面加载

时间:2018-05-29 12:54:42

标签: javascript mobile sms uri mobile-browser

以下是当用户使用移动浏览器时我获得的用于位置重定向到SMS应用的代码 -

window.onload = function() {
    window.location ="sms:12345?body=" + encodeURIComponent("TEST");
}

在移动设备上运行时,此代码可以完美地用于JS小提琴 JS小提琴链接 - https://jsfiddle.net/netstarter/rwqyp2tn/1/

2 个答案:

答案 0 :(得分:1)

最简单和恰当的方法是创建隐藏链接并直接触发它。

window.onload = () => {
  let element = document.getElementById("hiddenAppLink");
  element && element.click();
};
<!DOCTYPE html>
<html>
<body>
<a href='sms:12345?body=${encodeURIComponent("ITR")}' id="hiddenAppLink"></a>
</body>
</html>

你也可以根据一个条件触发它,如果它在某个变量中是否关闭状态而不是在每次加载时都会跟踪用户(你也可以使用localStorage在fiddle =&gt;安全违规时不能这样做) 。像这样的东西。

window.onload = () => {
  if(window.hideDialouge != true){
      let element = document.getElementById("hiddenAppLink");
      element && element.click();
      //Track if its alredy shown
      window.hideDialouge = true;
  }
};
<html>
    <body>
    <a href='sms:12345?body=${encodeURIComponent("ITR")}' id="hiddenAppLink"></a>
    </body>
    </html>

答案 1 :(得分:1)

SMS URL似乎仅在您打算打开新的SMS URL时才起作用。当您手动输入网址或使用window.location重定向时,它无法正常工作。

您可以使用两种方法来实现此目的:

  1. 打开隐藏链接。

  2. 使用window.open(这可能会要求用户在您的页面上允许弹出窗口)

  3. <强> 1。打开隐藏链接。

    创建隐藏链接并将其打开。

    &#13;
    &#13;
    window.onload = function() {
      let elem = document.getElementById("loadSMS");
      elem && elem.click();
    }
    &#13;
    <a href="sms:1-111-1111?body=Blah" style="display:none" id="loadSMS">
    </a>
    &#13;
    &#13;
    &#13;

    <强> 2。使用window.open代替window.location

    &#13;
    &#13;
    window.onload = function() {
      window.open("sms:1-111-1111?body=Blah");
    }
    &#13;
    &#13;
    &#13;