Как исправить, что щелчок по протоколу «WhatsApp: //» в ярлыке Chrome на рабочем столе iOS не работает после последнего обновления iOS до 12.2?

#javascript #html #ios #web-applications

#javascript #HTML #iOS #веб-приложения

Вопрос:

Предыдущее / рабочее состояние:

Javascript извлекал некоторые простые значения даты / времени из HTML-формы и устанавливал строку "whatsapp://send?text=" encodeURIComponet(str) в качестве href a элемента.

На iOS я открыл ссылку в Safari, выбрал «Закладки» -> «Добавить на главный экран». Все работало, т.Е. При нажатии «Go» запускался javascript, извлекались значения, сгенерированная строка, а затем Safari автоматически перенаправлялся в приложение Whatsapp со списком контактов, которые можно выбрать для сообщения, а также ссылка на общий доступ работала при нажатии вручную.

href.value = whatsapp://send?text=Apr-21: Dav OUT at 07:19pm

После того, как я обновил iPhone 8 до последней версии iOS 12.2 три дня назад:

Та же настройка, но теперь после нажатия кнопки «Перейти» Safari отображает следующий URL-адрес в адресной строке / строке состояния и показывает белую страницу

 Safari cannot open the page because it
cannot redirect to locations starting
with "whatsapp:"
  

Ручной щелчок и element.click () оба приводят к вышеуказанной ошибке. То же самое, что и в браузере iOS Chrome или iOS Safari, работает как задумано, но выдает ошибку только при использовании приложения «Добавить на рабочий стол».

Мой код

HTML

 <form>
<label for="date">Date</label><input id="date" name="date" type="date" required>
<label for="what">In/Out</label>
<select id="what" name="what" required>
  <option value="tIn">IN</option>
  <option value="tOut">OUT</option>
</select>
<label for="when">Time</label>
<input id="when" name="when" type="time" step=60 required><!-- step=60 will show only HH:MM -->
<input type="submit" onClick="process()" value="Go">
<a id="share">Share</a>
  

JS

 function process(){
  var date = document.getElementById("date").value;
  var what = document.getElementById("what").value;
  var when = document.getElementById("when").value;
  var waStr = waFormat(date,what,when);

  var share = document.getElementById("share");
  share.href = "whatsapp://send?text="   encodeURIComponent(waStr);
  share.click();
}

//return string for whatsapp link
function waFormat(waDate,waWhat,waWhen){
  var sp = " ";
  waDate = waDate.split("-");
  var mon = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
  waDate = mon[(waDate[1]-1)]   "-"   waDate[2]; 
  waWhat = (waWhat == "tIn") ? "IN" : "OUT";
  waWhen = waWhen.split(":");
  var apm = "am";
  if(waWhen[0]>12){
    waWhen[0] = waWhen[0]-12;
    apm = "pm";
  }
  waWhen = ("0"   waWhen[0]).slice(-2)   ":"   waWhen[1]   apm;
  return waDate   ": "  waWhat   sp   "at"   sp   waWhen;
}
  

Я переключался между encode() / encodeURI() / encodeURIComponent, но безрезультатно.

Пожалуйста, помогите. В чем может быть проблема с тем, что WhatsApp: // не работает в приложении Safari на рабочем столе? Я мог бы использовать https://wa.me ссылка, но также хотелось бы узнать, перестал ли whatsapp: // работать?

Это работает, когда та же страница открывается из Safari / Any, НЕ работает при открытии из приложения на рабочем столе в iOS

Комментарии:

1. Я испытываю ту же проблему с URI, начинающимся с webcal://

Ответ №1:

Я тоже столкнулся с этой проблемой. Для меня это сработало, чтобы отойти от схемы URL whatsapp:// и использовать следующее руководство https://faq.whatsapp.com/en/android/26000030 /.

Чтобы создать свою собственную ссылку с предварительно заполненным сообщением, которое автоматически появится в текстовом поле чата, используйте, https://wa.me/whatsappphonenumber/?text=urlencodedtext где whatsappphonenumber — полный номер телефона в международном формате и URL-encodedtext — предварительно заполненное сообщение в кодировке URL.

Пример: https://wa.me/15551234567?text=I'm interested in your car for sale

Чтобы создать ссылку с предварительно заполненным сообщением, используйте https://wa.me/?text=urlencodedtext

Пример: https://wa.me/?text=I'm inquiring about the apartment listing

После нажатия на ссылку вам будет показан список контактов, которым вы можете отправить свое сообщение.