簡體   English   中英

在最新的 iOS 更新到 12.2 后,如何修復 iOS 主屏幕 Chrome 快捷方式中的“whatsapp://”協議點擊中斷?

[英]How to fix the "whatsapp://" protocol click in iOS Homescreen Chrome Shortcut broken after latest iOS update to 12.2?

以前/工作狀態:

Javascript 從 HTML 表單中獲取一些簡單的日期/時間值,並將字符串"whatsapp://send?text="+encodeURIComponet(str)設置為a元素的 href。

在 iOS 上,我在 Safari 上打開鏈接,選擇書簽 -> 添加到主屏幕。 一切正常,即按下“Go”,javascript 運行,獲取值,生成字符串,然后 Safari 自動重定向到 Whatsapp 應用程序,其中包含可供選擇消息的聯系人列表,以及如果手動單擊則共享鏈接有效。

href.value = whatsapp://send?text=Apr-21%3A%20Dav%20OUT%20at%2007%3A19pm

三天前我將 iPhone 8 更新到最新的 iOS 12.2 后:

相同的設置,但現在單擊“Go”按鈕后,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:// 在 HomeScreen Safari 應用程序中不起作用的問題在哪里? 我可以使用https://wa.me鏈接,但也想知道 whatsapp:// 是否已停止工作?

從 Safari/Any 打開同一頁面時有效,從 iOS 中的 HomeScreen App 打開時無效

我也遇到過這個問題。 對於我來說,它可以擺脫 url 方案whatsapp://並使用以下指南https://faq.whatsapp.com/en/android/26000030/

要使用將自動出現在聊天文本字段中的預填充消息創建您自己的鏈接,請使用https://wa.me/whatsappphonenumber/?text=urlencodedtext其中whatsappphonenumber是國際格式和URL-encodedtext的完整電話號碼URL-encodedtext是 URL 編碼的預填充消息。

示例: https://wa.me/15551234567?text=I'm%20interested%20in%20your%20car%20for%20sale ://wa.me/15551234567?text=I'm%20interested%20in%20your%20car%20for%20sale

要創建僅包含預填充消息的鏈接,請使用https://wa.me/?text=urlencodedtext

示例: https://wa.me/?text=I'm%20inquiring%20about%20the%20apartment%20listing ://wa.me/?text=I'm%20inquiring%20about%20the%20apartment%20listing

單擊鏈接后,您將看到可以向其發送消息的聯系人列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM