特定WhatsApp联系人的网页链接

159

我想在网页上放置一个链接,以打开与某个whatsapp联系人的聊天。换句话说:我想要一个“通过whatsapp联系我”的链接,放在页面的“通过Facebook / Twitter / Google+ /等”链接旁边。类似于:

href="whatsapp:contact=015555555555@s.whatsapp.com&message="I'd like to chat with you"

官方常见问题解答:https://faq.whatsapp.com/452366545421244/ - stackprotector
15个回答

325

********* 更新于文章末尾 *********

我尝试了许多方法,最终找到了一个胜利者(请查看测试3),以下是每个测试的结果:

(我认为测试3也适用于你,因为如果访问你网站的人没有将你添加到他们的联系人列表中,这是唯一允许的选项。)

在所有测试中,号码必须完整,包括国家和地区代码,不含任何前导零。例如:

  • +55(011) 99999-9999 (不行)
  • +5511999999999 (可以)

在测试1和2中,只有在国家代码前加上加号才有效:+5511999999999

测试1:

<a href="whatsapp://send?abid=phonenumber&text=Hello%2C%20World!">Send Message</a>

为了能够发送消息,您必须在联系人列表中有电话号码。这对我不起作用,因为我想要能够向可能没有在我的联系人列表中的号码发送消息。

如果您的联系人列表中没有该号码,则会打开WhatsApp列表,显示所有已注册的联系人,以便您可以选择一个。

这是共享内容的好选择。

测试2:

<a href="intent://send/phonenumber#Intent;scheme=smsto;package=com.whatsapp;action=android.intent.action.SENDTO;end">Send Message</a>

这种方法仅适用于Android系统并且该号码已经存在于您的联系人列表中。如果没有该号码,Android将打开短信应用程序,以便您邀请联系人使用WhatsApp。

测试3 (获胜者):

<a href="https://api.whatsapp.com/send?phone=15551234567">Send Message</a>

这是唯一完全适用于我的方法。

  • 它适用于Android、iOS和桌面Web应用程序,
  • 您可以与不在联系人列表中的号码开始对话
  • 您可以创建一个带有一个预先构建的消息的链接,添加&text=[message-url-encoded],例如:

https://api.whatsapp.com/send?phone=15551234567&text=Send20%a20%quote

如果您想要一个书签以获得更加简便的使用体验,您可以使用以下代码:

javascript: (function() { var val= prompt("Enter phone number",""); if (val) location="https://api.whatsapp.com/send?phone="+escape('972' + val)+""; })()

您需要将国家代码更改为目标国家的代码(或删除它),并将其粘贴到Chrome / Firefox链接的地址字段中

值得注意的是:

***************** 更新(开始) *****************

WhatsApp现在提供了另一种选择,您可以创建一个到会话的链接,如下所示:

https://wa.me/[phonenumber]

电话号码应该是国际格式:

像这样:

https://wa.me/552196312XXXX

不要这样:

https://wa.me/+55(021)96312-XXXX

如果你想要在你的链接中加入一个预先创建好的消息,你可以在结尾处添加?text=并使用文本的URL编码:

https://wa.me/552196312XXXX?text=[message-url-encoded]

例子:

https://wa.me/552196312XXXX?text=Send20%a20%quote

更多信息请查看:

https://faq.whatsapp.com/general/chats/how-to-use-click-to-chat

***************** 更新(结尾) *****************


4
为了帮助其他用户避免我所犯的错误,请使用国际前缀但不要加上加号。因此,意大利的 0039 变成了 39。 - MDaldoss
6
是的,不需要加上加号。例如,如果您想链接到印度号码,可以省略+号,只使用91作为前缀。91********** - dresh
1
如果您的手机通讯录中没有该联系人,WhatsApp链接将无法使用。 - James Tan
确切地说,@JamesTan,如果你想联系不在你的联系人列表中的人,请使用以下方式:https://api.whatsapp.com/send?phone=15551234567,如上所示。 - Rafael Araújo
我意识到即使电话号码不存在也可以工作,我的错误是输入了一个无效的号码,多了一位数字导致了错误。 - James Tan
显示剩余6条评论

67

以下链接似乎工作正常 -

<a href="whatsapp://send?text=Hello World!&phone=+9198********1">Ping me on WhatsApp</a>

它会打开WhatsApp应用中的联系人,并在输入文本框中预填充消息“Hello World!”。

(在安卓手机上使用谷歌Chrome测试过。)


5
我用iPhone的Safari测试了这个,它可以工作! - Alan Avalos
1
适用于Opera和Chrome。 - W.M.
它可以在Chrome、Firefox和Android 6的默认浏览器上运行,同时也可以在iPhone6(2017年12月)的Safari和Chrome上运行。 - MattAllegro
在UC浏览器中无法正常工作,但在Chrome中可以正常工作。 - Devsainii
2023年对我不起作用。 - jodoro
@jodoro 你用的是哪个浏览器/操作系统?我在安卓手机上使用Chrome和Windows桌面版Chrome都没有问题。 - Sachin Doshi

14
您可以按照 WhatsApp 常见问题解答中提供的以下 URL 使用: https://wa.me/PHONENUMBERHERE 在号码前面添加国家代码,不要添加加号(+)或任何破折号(-)或任何其他字符。仅使用整数/数字值。
您还可以预定义一个以某个文本消息开头的文本消息: https://wa.me/PHONENUMBERHERE/?text=urlencodedtext

这会在 Android 中打开 Play Store,在确认页面后。 - amarmishra
@amarmishra 是的,它可能会在应用商店中打开,因为它想要安装WhatsApp应用程序。如果您已经安装了WhatsApp,则会打开WhatsApp并开始与该号码聊天。 - contrid
来源:https://faq.whatsapp.com/452366545421244/ - stackprotector


12

我尝试过这个:

<a href="whatsapp://send?abid=phonenumber&text=Hello%2C%20World!">whatsapp</a>

将'phonenumber'更改为特定的电话号码。这不完全有效,但当他们点击链接时,它确实会打开WhatsApp,如果他们点击联系人,则消息将填写。

如果您想要在聊天中打开特定的人,可以这样做,但是没有填写文本。

<a href="intent://send/phonenumber#Intent;scheme=smsto;package=com.whatsapp;action=android.intent.action.SENDTO;end">test</a>

你可能需要在这两者之间做出选择。

以下是一些链接,可以帮助你: 在Android手机上的移动网站上分享WhatsApp链接(非应用程序) https://www.whatsapp.com/faq/nl/android/28000012

希望这能帮到你

(我在安卓手机上使用Google Chrome测试过这个方法)


11
现在您可以使用非常简单的API https://wa.me/ 来完成此任务,您可以提供一个有效的 WhatsApp 联系人号码,例如15555555555(添加国家代码删除所有“+”、“-”、括号、空格或前导零)。您还可以提供一个urlencoded文本作为预定义消息,用户可以直接发送或更改后发送。

与我聊天链接<a href="https://wa.me/15555555555">通过WhatsApp联系我</a>

具有预定义文本的与我聊天链接<a href="https://wa.me/15555555555?text=I%27d%20like%20to%20chat%20with%20you">在WhatsApp上联系我</a>

wa.me URL的美妙之处在于您不需要检查用户代理,因为它适用于移动设备和桌面设备(打开web.whatsapp.com)。


来源:https://faq.whatsapp.com/en/general/26000030

关于类似问题的更多细节,请参见我的答案https://dev59.com/RF4b5IYBdhLWcg3wYQqZ#51854282


6

我也曾苦苦思索如何实现这一点。最终,我找到了这个有用的方法:

从 PHP 变量中获取:

href="https://wa.me/<?php echo esc_attr( $phone ); ?>?text=Hi%27,%20like%20to%20chat%20with%20you"

<?php echo esc_attr( $phone ); ?> 用于格式为数字的内容:

href="https://wa.me/263777300093?text=Hi%27,%20like%20to%20chat%20with%20you"

5
从官方Whatsapp常见问题解答中得知:https://faq.whatsapp.com/en/android/26000030/ WhatsApp的“点击聊天”功能允许您开始与某人聊天,而无需将他们的电话号码保存在您的手机通讯录中。只要您知道此人的电话号码,您就可以创建一个链接,使您可以开始与他们聊天。通过点击链接,一个与该人的聊天会自动打开。点击聊天功能在您的手机和WhatsApp Web上都可以使用。
要创建自己的链接,请使用https://wa.me/,其中是国际格式的完整电话号码。在添加国际格式的电话号码时,请省略任何零、括号或破折号。有关国际号码的详细说明,请阅读本文。请注意,这个电话号码必须在WhatsApp上有一个活跃的帐户。
Use: https://wa.me/15551234567

Don't use: https://wa.me/+001-(555)1234567

5

就目前而言,截至2018年11月29日,似乎在我的端上可以正常使用的更新API链接如下:

https://wa.me/<phone number here>

注意:
只需将占位符<phone number here>替换为您想要使用的目标电话号码,包括国家代码,这意味着我必须先添加+60,然后是其余的号码。
如果没有输入国家代码,在我的设备上(至少在Android和iOS上)无法使用。" It doesn't work"表示错误消息,类似于“您没有此号码”。
参考:

https://faq.whatsapp.com/en/general/26000030


@Korayem 你在开玩笑吧?这就是为什么我在我的回答中明确说“我添加了加号”,因为你链接的重复代码不起作用。 - Kevin
值得成为原始答案的注释。 - Korayem

4

这种方法只在安卓手机上有效,而且你必须将该联系人的号码添加到你的联系人列表中。如果你没有添加该号码,安卓会打开你的短信应用程序,让你邀请该联系人使用Whatsapp。

<a href="https://api.whatsapp.com/send?phone=2567xxxxxxxxx" method="get" target="_blank"><i class="fa fa-whatsapp"></i></a>

谷歌浏览器正在定位一个空白窗口。

这对我在Windows和iOS上都有效,即使联系人尚未在我的电话簿中,所以我猜WhatsApp自此回答发布以来已经更新了这个功能。更多详细信息和用法请参见他们的官方FAQ - wasabigeek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接