从Android的移动网站(不是应用程序)共享WhatsApp上的链接


213

我已经开发了一个主要用于手机的网站。
我想允许用户直接从网页共享信息到WhatsApp。

使用UserAgent检测,我可以区分Android和iOS。
我发现,为了在iOS中实现上述功能,我可以使用URL:

href="whatsapp://send?text=http://www.example.com"

我仍在寻找OS为Android时要使用的解决方案(因为上述方法不起作用)。
我猜想这与在Android中使用“意图”有关,但是我不知道如何将其用作href的参数。


这种方式可以连接到Whatsapp应用程序,还有另一种方式可以连接到web.whatsapp.com选项。有什么方法可以检测您是否拥有该应用程序,以查看要连接的应用程序?
— SrQ

哪个联系人会收到此消息?
— Codebeat

Answers:


321

刚在网站上看到它,现在似乎也可以在具有最新chrome和whatsapp的最新Android上使用!给链接一个新的镜头!

<a href="whatsapp://send?text=The text to share!" data-action="share/whatsapp/share">Share via Whatsapp</a>

今天重新检查了一下(17 日 2015年4月)重新检查:
在iOS 8(iPhone 6,最新版本),Android 5(Nexus 5,最新版本)上对我有效。

它也可以在Windows Phone上使用。


1
确实,我的问题中的原始网址似乎现在也适用于Android。
— 2014年

谁支持@MosheL无疑具有深刻见解的评论,必须对他的“项目”确切地有深刻的了解。
— Dan Dascalescu 2015年

6
@Manuel什么是data-action =“ share / whatsapp / share”?
— user3362364

4
数据应采用url编码形式,否则它将在whatsapp iphone中发送空白消息。
— Lijo Abraham 2015年

1
在最近的文档中可以找到一些API更改-faq.whatsapp.com/en/general/26000030/?category=5245251
— abhishek77

101

上面的答案有点过时了。虽然这些方法有效,但是通过使用以下方法,您可以将任何文本共享为预定义的数字。以下方法适用于android,WhatsApp Web,IOS等

您只需要使用以下格式:

<a href="https://api.whatsapp.com/send?phone=whatsappphonenumber&text=urlencodedtext"></a>

更新-从现在开始使用(2018年11月)

<a href="https://wa.me/whatsappphonenumber/?text=urlencodedtext"></a>

使用:https : //wa.me/15551234567

不要使用:https : //wa.me/+001-(555)1234567

要创建带有将自动显示在聊天文本字段中的预填充消息的链接,请使用 https://wa.me/whatsappphonenumber/?text=urlencodedtext,其中whatsappphonenumber是国际格式和URL的完整电话号码-encodedtext是URL编码的预填充消息。

示例:https://wa.me/15551234567?text = I'm%20interested%20in%20your%20car%20for%20sale

要创建仅包含预填消息的链接,请使用 https://wa.me/?text=urlencodedtext

示例:https://wa.me/?text = I'm%20inquiring%20about%20the%20apartment%20listing

单击链接后,将显示您可以向其发送消息的联系人列表。

有关更多信息,请参阅https://www.whatsapp.com/faq/zh/general/26000030


我在所有设备上都对此进行了测试。它所做的只是打开whatsapp应用程序。没有任何事情发生。测试了多种设备(iOS,Android,Windows)。
— HoldOffHunger

@HoldOffHunger是的,它将打开whatsapp应用程序,并且用户必须选择他希望与之共享链接/内容的联系人。
— ad08

@ ad08:这就是Threema和我测试的其他40种服务的工作方式。Viber和WhatsApp却什么也不做,我联系了他们的开发人员,他们俩都承认API没有任何作用。我在这里跟踪了它们的对应关系和其他40个api(有效):github.com/bradvin/social-share-urls/blob/master/README.md
— HoldOffHunger

在Mojave下的WhatsApp桌面上工作
— Alchem

6
如果没有电话号码,wa.me链接无法在手机上正常工作。即使官方文档指出您可以使用它,也只会出现错误。使用WhatsApp网络,它确实可以在桌面上运行。api.whatsapp.com均可在两者上可靠运行。
— 里卡多BRGWeb

39

目前,实现此目标非常容易。您只需要在页面上添加以下代码:

<a href="whatsapp://send?text=<<HERE GOES THE URL ENCODED TEXT YOU WANT TO SHARE>>" data-action="share/whatsapp/share">Share via Whatsapp</a>

就是这样。不需要Javascript,也不需要其他。当然,您可以根据需要对其进行样式设置,并包含漂亮的Whatsapp图标。

我在装有Google Chrome的Android设备上对此进行了测试。版本:

  • Android 4.1.2(Jelly Bean)
  • Chrome移动版37.0.2062.117。也在Firefox Mobile 31.0上进行了测试。
  • Whatsapp V 2.11.399

它也适用于iOS。我已经在配备Safari的iPhone 5上进行了快速测试,它也可以正常运行。

希望这对某人有帮助。:-)


3
为了对您的内容进行编码以共享使用encodeURIComponent()
— nikoskip 2014年

1
嘿,对我有用。谢谢:)很好奇,是否可以检查用户是否实际共享了链接还是只是回到了网站?
— 2014年

1
在装有Android 5.0(Lollipop)的Nexus 5和装有iOS 8.1.1的iPhone 5上也可以使用。
— Narxx 2014年

2
@juangalf如果我想使用此方法共享图像怎么办?是否也可能,或者仅支持文本?
— elembivos 2015年

1
@elembivos我也要问同样的问题。send参数必须如何格式化?目前,我whatsapp://send?text=data:image/png;base64,iVBORw0KGgoAAAANS...不确定要包含多少前缀...
— TMOTTM

27

根据新文档,该链接现在为:

<a href="https://wa.me/?text=urlencodedtext">Share this</a>

如果不起作用,请尝试以下一种方法:

<a href="whatsapp://send?text=urlencodedtext">Share this</a>

3
因此,没有电话号码也是可能的。该文档可在以下位置找到:faq.whatsapp.com/en/general/26000030
— Tim Vermaelen

1
我刚刚发现它无法正常工作了。它仅适用于电话号码。没有电话号码,您需要使用api.whatsapp.com
— Ricardo BRGWeb

@RicardoBRGWeb可以确定吗?我只是在我的网络浏览器上尝试过,没有任何编号,对我有用,它使我可以使用Whatsapp Web界面并与联系人共享
— Vincent Decaux

@VincentDecaux,即使在使用移动视图模式时,它也可以在桌面浏览器中使用。但是在移动浏览器中无法打开whatsapp或whatsapp商业应用程序。可能他们已经更改了应用程序中的内部链接uri。
— 里卡多BRGWeb

好的,您尝试过我的第二个选择吗?相当我没尝试过移动浏览器,明天我会尝试
— Vincent Decaux

14

最近,WhatsApp在其官方网站上进行了更新,我们需要使用此HTML标签以使其可与移动网站共享:

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

您可以替换text=以拥有链接或任何文本内容


我亲自测试过。它会打开应用程序,但没有其他内容。
— HoldOffHunger

@HoldOffHunger,因为您需要使用urlencode,否则它将无法正常工作
— Shiv Singh

@Shiv:那不是我的问题。
— HoldOffHunger

这肯定可以正常工作...是否可以在消息文本中插入换行符(输入键)?
— cht

@cht还可以,但是您可以使用%0D作为换行符
— Elro444 '19

11

最新更新

现在您可以使用whatsapp的最新API https://wa.me/,而无需担心用户代理,该API将做用户代理处理。

在相应的whatsapp客户端(Android / iOS / Webapp)中使用联系人选择选项共享预填充文本:

https://wa.me/?text=urlencodedtext

在各自的whatsapp客户端(Android / iOS / Webapp)中为特定的whatsapp用户打开“聊天对话框”:

https://wa.me/whatsappphonenumber

与特定用户共享预填充文本(在两个上方组合):

https://wa.me/whatsappphonenumber/?text=urlencodedtext

注意事项:whatsappphonenumber应为国际格式的完整电话号码。以国际格式添加电话号码时,请省略任何零,方括号或破折号。

有关官方文档,请访问 https://faq.whatsapp.com/en/general/26000030



7

恐怕Android版WhatsApp目前不支持从Web浏览器调用。

我对当前的项目有相同的要求,并且由于找不到任何适当的信息,我最终下载了APK文件。

在Android中,如果要从网络浏览器调用应用程序,则需要定义一个带有android.intent.category.BROWSABLE类别的Activity。

您可以在此处找到有关此信息的更多信息:https : //developers.google.com/chrome/mobile/docs/intents

如果您查看WhatsApp AndroidManifest.xml文件,则类别为BROWSABLE的唯一Activiy就是:

<activity android:name="com.whatsapp.Conversation"   android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:windowSoftInputMode="stateUnchanged">
        <intent-filter>
            <action android:name="android.intent.action.SENDTO" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="sms" />
            <data android:scheme="smsto" />
        </intent-filter>
    </activity>

我已经玩了一段时间了,但无法使其正常工作。我得到的最多是从Chrome打开WhatsApp应用程序,但我想不出一种设置消息内容和收件人的方法。

由于WhatsApp团队没有对此进行记录,因此我认为这仍在进行中。看起来将来WhatsApp也将处理SMS。

获得更多信息的唯一方法是联系WhatsApp开发人员团队,这是我所尝试的,但是我仍在等待响应。

问候!


1
我可以要求您在此处分享有关此问题的任何新信息吗?我也很方便。无论如何,谢谢您详尽的回答。
— ccalboni 2014年

我能够与WhatsApp开发人员联系。他们承认不支持此功能。
— HoldOffHunger

7

通常,仅使用Java脚本仅在iOS或Android设备上显示Whatsapp链接才有意义:

   if (navigator.userAgent.match(/iPhone|Android/i)) {
      document.write('<a href="whatsapp://send?text=See..">Share on WhatApp</a>');
   }

什么没有奏效?链接显示在非移动设备上?在移动设备上的链接不起作用?
— 魏登林德'18

将打开WhatsApp应用程序。但是既不显示文本也不显示消息。在多个操作系统和设备上进行了测试。我给开发者发了电子邮件。他们正式不支持此行为。“很遗憾,目前尚不支持此行为。我们一直在努力改进我们的应用程序,并将考虑您的建议。” (票号172349248330585)我已经测试了约40种其他服务,仅WhatsApp和Viber不支持他们自己的文档。
— HoldOffHunger

7

刚刚用,whatsapp://对我的超老测试了该方案,就像一个魅力。它似乎只是版本。以来Android 2.3.3Whats App 2.11.301Whats AppWhats App迫使所有人进行更新,因此使用它应该是安全的。

该Whats App文档还提到了该方案:http : //www.whatsapp.com/faq/en/android/28000012

我现在正在生产站点上使用它,如果收到任何用户投诉,将在此处进行更新。

编辑(11月14日):几周后没有用户投诉。


6

官方文档说使用:wa.me。不要使用wa.me。亲自尝试一下:https : //wa.me/?text= SomeTexttoShare对我来说,结果是:

我们找不到您想要的页面

您似乎正在寻找一个不存在的页面。或者我们可能刚刚删除的页面。无论哪种方式,请返回或确保检查URL,您的拼写并重试。

如果要共享,则必须绝对使用以下两种URL格式之一:

https://api.whatsapp.com/send?text=YourShareTextHere
https://api.whatsapp.com/send?text=YourShareTextHere&phone=123

如果您有兴趣观看跟踪这些URL的项目,请查看我们!:https : //github.com/bradvin/social-share-urls#telegramme

社交分享网址


whatsapp://send?text=无论有没有URL编码,使用对我都有效。仅在iOS上进行过测试
— -Snowball

嘿,@ Snowball:实际上,感谢您的评论,仅在安装whatsapp应用程序后才能使用。对于customProtocol://action=?链接类型,这是正常的。因此,在台式机上什么也做不了。要使用该功能,需要先检测操作系统,然后再为桌面使用一个URL,对于iOS使用另一个URL。但这与OP所要求的完全不同。
— HoldOffHunger

3

根据平台(台式机或移动设备)切换whatsapp共享链接。

无论是否在链接中提供电话号码,此功能都可以使用。

对于手机

   vm.LinkTextToShare = 'https://api.whatsapp.com/send?text=' + encodeURIComponent(window.location.href) ;

   window.open(vm.LinkTextToShare,"_blank");

对于台式机

   vm.LinkTextToShare = 'https://web.whatsapp.com/send?l=en&text=' + encodeURIComponent(window.location.href) ;

   window.open(vm.LinkTextToShare,"_blank");

3

这段代码对我有用。

单击链接后,它将要求您选择共享消息的联系人。

<a href="https://api.whatsapp.com/send?text=enter message here">Click here to share on Whatsapp</a>

您可以添加target =“ _ blank”属性以在新窗口或选项卡中将其打开。

当有人要共享特定的消息或文章时,我认为不需要电话号码。


可以在浏览器桌面中打开它吗?如此转发到web.whatsapp页面?
— gumuruh

1

像“ whatsapp:// send?text =“ + encodeURIComponent(您的文本在此处)一样使用它,它肯定会工作。


0

尝试以这种方式进行:

<a href="https://wa.me/(phone)?text=(text URL encoded)">Link</a>

即使您可以发送消息而无需在链接中输入电话号码:

<a href="https://wa.me/?text=Hello%20world!">Say hello</a>

单击链接后,将显示您可以向其发送消息的联系人列表。

有关更多信息,请访问https://faq.whatsapp.com/en/general/26000030。

祝好运!


whatsapp说我们找不到您想要的页面
— Reza Mortazavi

我不明白 WhatsApp显示该错误?什么时候?
— Gustavo Cantero
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.