如何使用预先填写的消息打开WhatsApp聊天,该消息跨越我网站的多行?

时间:2015-12-12 16:54:53

标签: php android html ios whatsapp

来自WhatsApp's FAQ section

  

WhatsApp提供了与WhatsApp交互的自定义​​URL方案:

     

如果您有一个网站,并希望打开一个WhatsApp聊天   预填充消息,您可以使用我们的自定义URL方案来执行此操作。   打开whatsapp:// send?text =后跟要发送的文本,将打开   WhatsApp,允许用户选择联系人,并预先填写输入   具有指定文本的字段。

     

以下是如何在您的网站上撰写此内容的示例:

     

<a href="whatsapp://send?text=Hello%20World!">Hello, world!</a>

如果我想在多行上提到pre-filled message跨度,如下所示:

Text on the first line
Text on the second line

Text on the third line
Text on the fourth line

我试图将文字放在<a href=""></a>标签中,如下所示:

<a href="whatsapp://send?text=First line\r\nSecond line\r\n\r\nThird line\r\nFourth line">Share on WhatsApp</a>

但它不起作用,消息显示在WhatsApp中,如下所示:

First lineSecond lineThird lineFourth line

2 个答案:

答案 0 :(得分:1)

需要对\r\n标记中的URL中使用的PHP换行符<a href=""></a>进行编码。 urlencode() PHP函数可用于执行此操作。链接必须如下所示才能正确打开WhatsApp聊天,其中包含跨越多行的预填充消息:

<?php
    $msg = "First line\r\nSecond line\r\n\r\nThird line\r\nFourth line";
    $msg = str_replace("\r\n", urlencode("\r\n"), $msg); // note the double quotes

    echo "<a href='whatsapp://send?text=$msg'>Share on WhatsApp</a>";
?>

现在,如果有人在他的Android或iOS设备上浏览您的网站时点击该链接,那么WhatsApp应用程序将打开以允许他选择联系人,并使用指定的文本预填充输入字段像这样的多行:

First line
Second line

Third line
Fourth line

请注意,必须使用双引号,即"\r\n" NOT '\r\n'

答案 1 :(得分:0)

虽然urlencode($msg)适用于大多数移动浏览器,但它会在Android设备上的firefox上编码+的空格,因此您的用户可能会看到Text+on+the+first+line等文字。更好的解决方法是使用rawurlencode($msg)使其与所有浏览器兼容,因为它强制文本按照RFC 3986格式进行编码。