繁体   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