Переадресация местоположения на "sms: 123454" не работает при загрузке страницы - PullRequest
0 голосов
/ 29 мая 2018

Ниже приведен код, который я получил для перенаправления местоположения в приложение SMS, когда пользователь находится в мобильном браузере -

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

Этот код отлично работает на скрипте JS при работе по мобильной ссылке JS Fiddle -https://jsfiddle.net/netstarter/rwqyp2tn/1/

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

URL-адрес SMS, кажется, работает только тогда, когда вы собираетесь открыть новый URL-адрес SMS.Он не работает, когда вы вручную вводите URL-адрес или используете window.location redirect.

Для этого можно использовать два метода:

  1. Открыть скрытую ссылку.

  2. Используйте window.open (Это может потребовать, чтобы пользователь разрешил всплывающие окна на вашей странице)

1.Откройте скрытую ссылку.

Создайте скрытую ссылку и откройте ее.

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

2.Используйте window.open вместо изменения window.location

window.onload = function() {
  window.open("sms:1-111-1111?body=Blah");
}
0 голосов
/ 05 июня 2018

Самый простой и подходящий способ сделать это - создать скрытую ссылку и вызвать ее напрямую.

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 =>).как то так.

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>
...