首页 文章

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

提问于
浏览
0

WhatsApp's FAQ section

WhatsApp提供了一个自定义URL方案来与WhatsApp进行交互:如果您有一个网站并想要使用预先填写的消息打开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

    需要对 <a href=""></a> 标记中的URL中使用的PHP换行符 \r\n 进行编码 . 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

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

相关问题