使用Whatsapp 'Click To Chat',我能够向一个号码发送消息,正如预期的那样。但是,我想在预填充的消息中发送一些表情符号。当我使用浏览器时,它工作得很好,但当我在应用程序中使用WebView时,它就不起作用了(特别是带有运行相同站点的WebView的React Native应用程序)。
问题:
对于这两个,桌面浏览器或webView我使用相同的功能和相同的编码(encodeURI()
),但当WebView调用Whatsapp URL(“wa.me/...”)时,Whatsapp上的聊天显示所有表情符号:��
- 在WhatsApp Click to Chat上可以使用表情符号吗?(我敢打赌,因为桌面浏览器工作)。
- 在移动的/APP上会发生什么?
- 我应该使用某种字符编码,如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 from应用程序中,它调用WhatsApp URL并正确打开聊天,但表情符号丢失,只显示一个问号。在浏览器(例如Chrome)上,它工作得很好,表情符号出现(即使在移动的版Chrome上)此外,即使我删除encodeURI并直接传递表情符号,它仍然不起作用。我很确定几周前它还能用的...
2条答案
按热度按时间3wabscal1#
这是你应该如何编码你的URL:
你可以使用
https://wa.me/
,我只是在这个例子中使用了另一个URL。在浏览器中,它可能仍然给出�
。但在你的手机上应该能用。vxf3dgd42#
我来晚了一点,但我遇到了同样的问题。解决方案如下:
不要使用
用这个代替
Vissie的答案是工作,因为他/她使用
api.whatsapp.com/send/
。浏览器仍然会显示�
,但一旦打开WhatsApp,您就会看到表情符号。但是短网址wa.me
不起作用。WhatsApp的服务器会将所有wa.me
请求重定向到api.whatsapp.com/send/
,在此重定向过程中,表情符号会变成�
。这不是你的代码的问题。