【问题标题】:Whatsapp Click to Chat with emojisWhatsapp 点击与表情符号聊天
【发布时间】:2021-01-20 17:38:04
【问题描述】:

使用 Whatsapp 'Click To Chat' 我可以按预期向一个号码发送消息。 但是,我想在预填充的消息中发送一些表情符号。当我使用浏览器时它运行良好,但当我在应用程序中使用 WebView 时它不起作用(特别是带有运行同一站点的 webview 的 React Native 应用程序)。

问题
对于桌面浏览器或 webView,我使用相同的功能和相同的编码 (encodeURI()),但是 当 WebView 调用 Whatsapp URL(“wa.me/...”)时,Whatsapp 上的聊天会将所有表情符号显示为:�

  • 甚至可以在 Whatsapp Click to Chat 上使用表情符号吗? (我敢打赌,因为桌面浏览器可以工作)。
  • 在移动/应用上会发生什么?
  • 我应该使用某种字符编码,如 unicode、UTF-8(我已经测试了一些,但没有成功)?

这是我正在使用的函数:

SendWhatsapp = function(message, number) {
  number = LibGeral.NormalizeMobileNumber(number);
  if (empty(message)) {
    message = "";
  }

  var urlApiWhats = "https://wa.me/" + number + "?text=" + message;
  urlApiWhats = encodeURI(urlApiWhats);
  var a = document.createElement("a");
  a.setAttribute("data-action", "share/whatsapp/share")
  a.href = urlApiWhats;
  window.document.body.appendChild(a)
  a.click();
  window.document.body.removeChild(a);
  return true;
}

SendWhatsapp("I'm a message with emoji ????", "xxxxxxxxx")

如前所述,在应用程序的 WebView 内部,它调用了 whatsapp url 并正确打开了聊天,但表情符号丢失了,只显示了一个问号。在浏览器(例如 Chrome)上,它运行良好并且出现表情符号(甚至在移动版 Chrome 上) 此外,即使我删除了 encodeURI 并“直接”传递了表情符号,它仍然无法正常工作。 我很确定几周前它还在工作......

【问题讨论】:

  • 表情符号是特殊字符(unicode)。您可能只是在将消息添加到 URL 参数之前对这些消息进行 URL 编码。你可以使用URLEncoder.encode()
  • @KenVanHoeylandt “未定义 URLEncoder”
  • 我也面临同样的问题;它以前一直在工作,自从几周后,无论你如何编码,你都会得到这个问号。移动设备仍然可以正常工作,但在计算机上,浏览器显示问号,并且向前移动到 WhatsApp 应用程序(mac/win),这是错误的。

标签: javascript encoding whatsapp emoji


【解决方案1】:

这就是你应该如何编码你的 URL:

const url = `https://api.whatsapp.com/send?phone=31612345678&text=${encodeURIComponent('Cheers from Vissie ⚡️')};
// returns: "https://api.whatsapp.com/send?phone=31612345678&text=Cheers%20from%20Vissie%20%E2%9A%A1%EF%B8%8F"

您可以使用https://wa.me/,我只是在此示例中使用了另一个 URL。有可能在浏览器中它仍然给出。但在您的手机上,这应该可以工作。

【讨论】:

  • 你试过了吗?对我来说还是坏掉了。
猜你喜欢
  • 1970-01-01
  • 2021-01-16
  • 2020-09-28
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
相关资源
最近更新 更多