【问题标题】:Sharing link on WhatsApp from mobile website (not application) for Android从 Android 的移动网站(不是应用程序)在 WhatsApp 上共享链接
【发布时间】:2014-03-23 00:14:28
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这种方式连接到 Whatsapp 应用程序,还有另一种方式连接到 web.whatsapp.com 选项。有什么方法可以检测你是否有应用程序,看看要连接到哪个?
  • 哪个联系人会收到这条消息?

标签: android html mobile share whatsapp


【解决方案1】:

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

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

今天重新检查(2015 年 4 月 17 日):
适用于 iOS 8(iPhone 6,最新版本)Android 5(Nexus 5,最新版本)。

它也适用于 Windows Phone。

【讨论】:

  • 确实,我的问题中的原始 URL 现在似乎也适用于 Android。
  • 无论谁赞成 @MosheL 无疑富有洞察力的评论,都必须对他的“项目”到底是什么了如指掌。
  • @Manuel data-action="share/whatsapp/share" 是干什么用的?
  • 数据应该是 url 编码形式。否则它将在 whatsapp iphone 中发送空白消息。
  • 一些 API 更改可以在最近的文档中找到 - faq.whatsapp.com/en/general/26000030/?category=5245251
【解决方案2】:

以上答案有点过时了。虽然这些方法有效,但通过使用以下方法,您可以将任何文本共享到预定义的号码。以下方法适用于 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/en/general/26000030

【讨论】:

  • 我在所有设备上都进行了测试。它所做的就是打开whatsapp应用程序。之后什么都没有发生。测试了多种设备(iOS、Android、Windows)。
  • @HoldOffHunger 是的,它会打开 whatsapp 应用程序,用户必须选择他想要分享链接/内容的联系人。
  • @ad08:这就是 Threema 和我测试的其他 40 项服务的工作方式。然而,Viber 和 WhatsApp 什么也没做,我联系了他们的开发人员,他们都承认 API 什么也没做。我在这里跟踪了他们的通信和其他 40 个 api(有效):github.com/bradvin/social-share-urls/blob/master/README.md
  • 在 Mojave 下的 WhatsApp 桌面上工作
  • wa.me 链接在没有电话号码的移动设备上无法正常工作。即使官方文档声明您可以使用它,它也只是给出了一个错误。它确实可以在桌面上使用,使用 WhatsApp 网络。 api.whatsapp.com 在两者上都能可靠运行。
【解决方案3】:

目前,实现这一点非常容易。您只需将以下代码添加到您的页面:

<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 图标。

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

  • Android 4.1.2(果冻豆)
  • Chrome 移动版 37.0.2062.117。还在 Firefox Mobile 31.0 上进行了测试。
  • Whatsapp V 2.11.399

它也适用于 iOS。我用 Safari 对 iPhone 5 进行了快速测试,它也能正常工作。

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

【讨论】:

  • 用于编码您的内容以共享使用encodeURIComponent()
  • 嘿,这对我有用。谢谢 :) 只是好奇,如果我可以检查用户是否真的分享了链接或者只是回到了网站?
  • 也适用于我的装有 Android 5.0 (Lollipop) 的 Nexus 5 和装有 iOS 8.1.1 的 iPhone 5。
  • @juangalf 如果我想使用这种方法共享图像怎么办?这也是可能的,还是只支持文本?
  • @elembivos 我也在问同样的问题。 send 参数必须如何格式化?目前,我有 whatsapp://send?text=data:image/png;base64,iVBORw0KGgoAAAANS... 但不确定要包含多少前缀...
【解决方案4】:

根据新文档,链接现在是:

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

如果不行,试试这个:

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

【讨论】:

  • 所以也可以不用电话号码。该文档可以在这里找到:faq.whatsapp.com/en/general/26000030
  • 我刚刚发现它不再正常工作了。它只适用于电话号码。如果没有电话号码,您需要使用 api.whatsapp.com
  • @RicardoBRGWeb 确定吗?我刚刚在我的网络浏览器上尝试过,没有任何号码就可以为我工作,它使我使用 Web Whatsapp 界面并分享给联系人
  • @VincentDecaux 它适用于桌面浏览器,即使在使用移动视图模式时也是如此。但它无法在移动浏览器中打开 whatsapp 或 whatsapp 业务应用程序。可能他们已经更改了应用程序中的内部链接 uri。
  • 好的,你试过我的第二个选项了吗?还好我没用手机浏览器,我明天试试
【解决方案5】:

官方文档说要使用:wa.me。不要使用wa.me。对于这些结果的冗长,我深表歉意,但这是一个迅速发展的问题....

2020 年 4 月结果

Share Link

此链接不正确。关闭此窗口并尝试其他链接。

2020 年 5 月结果

Share Link GitHub Ticket: WhatsApp short link without phone number not working anymore

我们找不到您要查找的页面

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

2020 年 8 月结果

Share Link

按预期工作!

2020 年 10 月最新结果

Share Link

(又坏了!)og:image标签预览在使用wa.me时被禁用。

根据我看到的一些 cmets,这似乎仍然是一个间歇性问题,因此,今后,我建议您坚持使用api.whatsapp.com 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#whatsapp

【讨论】:

  • 使用whatsapp://send?text= 对我有用,不管有没有 URL 编码。只在 iOS 上测试过
  • 嘿,@Snowball:感谢您的评论,实际上,这只有在安装了 whatsapp 应用程序时才有效。这对于customProtocol://action=? 类型的链接来说是正常的。因此,这在台式机上无济于事。使用它需要检测操作系统,然后使用一个 URL 用于桌面,另一个用于 iOS。但这与 OP 的要求完全不同。
  • 如果您希望在共享中包含 OpenGraph 图像 (og:image),这是最佳解决方案。
  • @HoldOffHunger 我们如何通过这个 api.whatsapp 链接分享图片?
  • @GuarangDhorda:使用og:image 标签。
【解决方案6】:

最近 WhatsApp 更新了我们需要使用的 official website 此 HTML 标记以使其可共享到移动网站:

&lt;a href="whatsapp://send?text=Hello%20World!"&gt;Hello, world!&lt;/a&gt;

您可以替换 text= 以获得您的链接或任何文本内容

【讨论】:

  • 我亲自测试了这个。它打开了应用程序,但没有别的。
  • @HoldOffHunger 因为你需要使用 urlencode 否则它将无法工作
  • @Shiv:那不是我的问题。
  • 这肯定有效...有什么方法可以在消息文本中插入换行符(输入键)?
  • @cht 有点晚了,但你可以使用 %0D 作为换行符
【解决方案7】:

最新更新

现在您可以使用来自 whatsapp https://wa.me/ 的最新 API,而无需担心用户代理,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

【讨论】:

【解决方案8】:

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

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

在 Android 中,如果应用程序想要从 Web 浏览器调用,它需要定义一个类别为 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 也会处理短信。

获取更多信息的唯一方法是联系 WhatsApp 开发团队,我尝试过,但我仍在等待回复。

问候!

【讨论】:

  • 我可以请您在这里分享有关此问题的任何新信息吗?对我来说也会很方便。无论如何,感谢您详尽的回答。
  • 我能够与 WhatsApp 开发人员取得联系。他们承认不支持此功能。
【解决方案9】:

一般来说,仅在 iOS 或 Android 设备上显示 Whatsapp 链接才有意义,使用 java 脚本:

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

【讨论】:

  • 什么不起作用?链接显示在非移动设备上?在移动设备上链接无效?
  • WhatsApp 应用程序打开。但既没有显示文本也没有显示消息。在多个操作系统和设备上进行了测试。我给开发者发了电子邮件。他们官方不支持这种行为“很遗憾,目前不支持这种行为。我们一直在努力改进我们的应用程序,并将考虑您的建议。” (票号 #172349248330585)我已经测试了大约 40 种其他服务,只有 WhatsApp 和 Viber 不支持他们自己的文档。
【解决方案10】:

刚刚用Whats App 2.11.301 在我的超级老Android 2.3.3 上测试了whatsapp:// 方案,就像一个魅力。它似乎只是Whats App 版本。既然Whats App是在强制大家更新,应该可以放心使用。

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

我现在在生产网站上使用它,如果我收到任何用户投诉,我会在此处更新。

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

【讨论】:

    【解决方案11】:

    这段代码对我有用。

    点击链接后,会要求你选择要分享信息的联系人。

    &lt;a href="https://api.whatsapp.com/send?text=enter message here"&gt;Click here to share on Whatsapp&lt;/a&gt;

    您可以添加 target="_blank" 属性以在新窗口或标签中打开它。

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

    【讨论】:

    • 这个可以在浏览器桌面打开吗?所以转发到 web.whatsapp 页面?
    【解决方案12】:

    根据桌面或移动平台切换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");
    

    【讨论】:

    • 对于使用 OpenGraph 协议进行图像共享 (og:image) 的人的注意事项:桌面解决方案不包含图像,仅包含链接。如果您希望在分享中包含图片,您必须始终使用手机版:https://api.whatsapp.com/send?text=
    【解决方案13】:

    像“whatsapp://send?text=" + encodeURIComponent(你的文本放在这里)一样使用它,它肯定会起作用。

    【讨论】:

      【解决方案14】:

      试着这样做:

      <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 说我们找不到您要找的页面
      • 我不明白。 WhatsApp显示该错误?什么时候?
      【解决方案15】:

      使用:https://wa.me/1XXXXXXXXXX

      不要使用:https://wa.me/+001-(XXX)XXXXXXX

      预先填写的消息将自动出现在聊天的文本字段中。使用 https://wa.me/whatsappphonenumber?text=urlencodedtext,其中 whatsappphonenumber 是国际格式的完整电话号码,urlencodedtext 是 URL 编码的预填充消息。

      示例: https://wa.me/1XXXXXXXXXX?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`

      点击链接后,您将看到一个联系人列表,您可以将消息发送至。

      【讨论】:

      • 对于使用 OpenGraph 协议进行图像共享 (og:image) 的人们的注意事项:此解决方案不包含图像,仅包含链接。如果您希望在分享中包含图片,您必须在链接中使用https://api.whatsapp.com/
      【解决方案16】:

      如果您想在浏览器中打开whatsapp,这是正确的:

      <a href=`https://web.whatsapp.com/send?text=${yout URL or TEXT}` ><Whatsapp</a>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-04
        • 1970-01-01
        • 2017-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-03
        • 1970-01-01
        相关资源
        最近更新 更多