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

Net*_*ter 11 javascript mobile sms uri mobile-browser

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

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

当在移动JS Fiddle链接上运行时,此代码在JS小提琴上完美运行 - https://jsfiddle.net/netstarter/rwqyp2tn/1/

kar*_*hik 2

最简单、最合适的方法是创建一个隐藏链接并直接触发它。

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

您还可以根据条件触发它,通过跟踪状态是否在变量中关闭,而不是在每次加载时干扰用户(您也可以使用 localStorage 不能在 fiddle => 安全违规中执行此操作)。像这样的东西。

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

  • 可能是因为这个...... https://www.androidpolice.com/2017/11/08/google-chrome-will-start-blocking-redirecting-ads/ ....不过不能责怪谷歌:) 。 (2认同)