Поделиться ссылкой на WhatsApp с мобильного сайта (не приложения) для Android

213

Я разработал веб-сайт, который в основном используется в мобильных телефонах.
Я хочу разрешить пользователям обмениваться информацией непосредственно с веб-страницы в WhatsApp.

Используя обнаружение UserAgent, я могу различить Android и iOS.
Мне удалось обнаружить, что для реализации вышеупомянутого в iOS я могу использовать URL:

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

Я все еще ищу решение, которое будет использоваться, когда ОС Android (так как выше не работает).
Я думаю, это как-то связано с использованием «намерения» в Android, но я не мог понять, как это сделать в качестве параметра для href.

Йохай
источник
Этот способ подключается к приложению WhatsApp, а есть еще один способ подключения к опции web.whatsapp.com. Есть ли способ определить, есть ли у вас приложение или нет, чтобы узнать, к какому подключению?
SrQ
Какой контакт получит это сообщение?
Codebeat

Ответы:

321

Только что увидел его на веб-сайте и, кажется, работает на последних Android с последним Chrome и WhatsApp сейчас тоже! Дайте ссылку на новый снимок!

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

Перепроверил сегодня (17 - го апреля 2015 года):
у меня работает на прошивке 8 (iPhone 6, последние версии) Android 5 (Nexus 5, последние версии).

Это также работает на Windows Phone.

Manuel
источник
1
действительно кажется, что оригинальный URL в моем вопросе теперь работает и для Android.
Йохай
Кто бы ни проголосовал против несомненно проницательного комментария @ MosheL, он должен иметь глубокие знания о том, что именно является его "предметом".
Дан Даскалеску
6
@ Мануэль, для чего используется data-action = "share / whatsapp / share"?
user3362364
4
Данные должны быть в форме URL-адреса. В противном случае он отправит пустое сообщение в WhatsApp Iphone.
Лихо Авраам
1
Некоторые изменения API можно найти в недавнем документе - faq.whatsapp.com/en/general/26000030/?category=5245251
abhishek77in
102

Вышеуказанные ответы немного устарели. Хотя эти методы работают, но с помощью метода ниже, вы можете поделиться любым текстом на заранее определенное число. Приведенный ниже метод работает для Android, веб-сайтов WhatsApp, IOS и т. Д.

Вам просто нужно использовать этот формат:

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

ОБНОВЛЕНИЕ-- Используйте это сейчас (ноябрь-2018)

<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=Im% 20 интересуется% 20in% 20your% 20car% 20 для% 20 продаж

Чтобы создать ссылку с предварительно заполненным сообщением, используйте https://wa.me/?text=urlencodedtext.

Пример: https://wa.me/?text=Im% 20, запрашивающий% 20 о% 20 the% 20apartment% 20 перечисления

После нажатия на ссылку вам будет показан список контактов, которым вы можете отправить свое сообщение.

Для получения дополнительной информации см. Https://www.whatsapp.com/faq/en/general/26000030.

AD08
источник
Я проверял это на всех устройствах. Все, что он делает, это открывает приложение WhatsApp. Ничего не происходит после. Протестировано несколько устройств (iOS, Android, Windows).
HoldOffHunger
@HoldOffHunger да, это откроет приложение WhatsApp, и пользователь должен выбрать контакт, с которым он хочет поделиться ссылкой / контентом.
ad08
@ ad08: Так работали Трима и 40 других сервисов, которые я тестировал. Viber и WhatsApp, однако, ничего не делают, я связался с их разработчиками, и они оба признали, что API ничего не делает. Я отслеживал их переписку и другие 40 API (которые работают) здесь: github.com/bradvin/social-share-urls/blob/master/README.md
HoldOffHunger,
Работает на WhatsApp Desktop под Мохаве
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.

Я проверил это на своем устройстве Android с Google Chrome. Версии:

  • Android 4.1.2 (Jelly Bean)
  • Chrome Mobile 37.0.2062.117. Также протестирован на Firefox Mobile 31.0.
  • Whatsapp V 2.11.399

Это также работает на iOS. Я провел быстрый тест на iPhone 5 с Safari, и он также работает.

Надеюсь, это кому-нибудь поможет. :-)

juangalf
источник
3
Для кодирования вашего контента для совместного использованияencodeURIComponent()
nikoskip
1
эй, это сработало для меня. спасибо :) Просто любопытно, есть ли способ проверить, действительно ли пользователь поделился ссылкой или просто вернулся на сайт?
Сказано
1
Работает также на моем Nexus 5 с Android 5.0 (Lollipop) и iPhone 5 с iOS 8.1.1.
Narxx
2
@juangalf Что если я хочу поделиться изображением, используя этот метод? это будет возможно, или только текст поддерживается?
elembivos
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
Тим Вермален
1
Я только что обнаружил, что он больше не работает должным образом. Это просто работает с номером телефона. Без номера телефона вам нужно использовать api.whatsapp.com
Рикардо BRGWeb
@RicardoBRGWeb уверен в этом? Я только что попробовал свои веб-браузеры, у меня работает без каких-либо цифр, мне нужен веб-интерфейс Whatsapp и поделиться с контактом
Vincent Decaux
@VincentDecaux работает в настольных браузерах даже при использовании режима мобильного просмотра. Но он не будет работать в мобильных браузерах, чтобы открыть бизнес-приложения WhatsApp или WhatsApp. Вероятно, они изменили внутреннюю ссылку URI в приложении.
Рикардо BRGWeb
Хорошо, ты попробовал мой второй вариант? честно говоря, я не пробовал на мобильном браузере, завтра попробую
Винсент Деко
14

Недавно WhatsApp обновил на своем официальном сайте, что нам нужно использовать этот тег HTML, чтобы сделать его доступным для мобильных сайтов:

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

Вы можете заменить, text=чтобы иметь вашу ссылку или любой текстовый контент

Адил Кешвани
источник
Я проверял это лично. Он открывает приложение, но больше ничего.
HoldOffHunger
@HoldOffHunger, потому что вам нужно использовать urlencode, иначе он не будет работать
Шив Сингх,
@Shiv: Это была не моя проблема.
HoldOffHunger
Это работает наверняка ... Любой способ вставить разрывы строки (введите ключи) в текст сообщения?
Чт
@cht немного поздно, но вы можете использовать% 0D в качестве разрывов строк
Elro444
11

ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ

Теперь вы можете использовать последний API из WhatsApp, https://wa.me/не беспокоясь о пользовательском агенте, API будет обрабатывать пользовательский агент.

Поделиться предварительно заполненным текстом с возможностью выбора контакта в соответствующем клиенте WhatsApp (Android / iOS / Webapp):

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

Откройте диалоговое окно чата для конкретного пользователя WhatsApp в соответствующем клиенте WhatsApp (Android / iOS / Webapp):

https://wa.me/whatsappphonenumber

Поделиться предварительно заполненным текстом с конкретным пользователем (объединить два выше):

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

Примечание : whatsappphonenumberдолжен быть полный номер телефона в международном формате. Опускать любые нули, скобки или тире при добавлении номера телефона в международном формате.

Для официальной документации посетите https://faq.whatsapp.com/en/general/26000030

Shri
источник
wa.me/whatsappphonenumber/?text=urlencodedtext не работает, кажется
Киран
7

Я боюсь, что WhatsApp для Android в настоящее время не поддерживает вызов из веб-браузера.

У меня было такое же требование для моего текущего проекта, и, так как я не мог найти нужную информацию, в итоге я скачал файл APK.

В Android, если приложение хочет вызываться из веб-браузера, оно должно определить Activity с категорией android.intent.category.BROWSABLE.

Вы можете найти дополнительную информацию об этом здесь: https://developers.google.com/chrome/mobile/docs/intents

Если вы посмотрите на файл WhatsApp AndroidManifest.xml, единственный Activiy с категорией BROWSABLE - это:

<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>

Я играл с ним некоторое время, и я не мог заставить его работать. Максимум, что я получил, - это открыть приложение WhatsApp из Chrome, но я не мог найти способ настроить содержимое сообщения и получателя.

Так как это не задокументировано командой WhatsApp, я думаю, что это все еще в стадии разработки. Похоже, что в будущем WhatsApp будет обрабатывать и SMS.

Единственный способ получить больше информации - связаться с командой разработчиков WhatsApp, что я и пытался, но я все еще жду ответа.

С уважением!

oliferna
источник
1
Могу ли я попросить вас поделиться любой новой информацией об этой проблеме здесь? Было бы очень удобно для меня тоже. В любом случае, спасибо за исчерпывающий ответ.
ccalboni
Я смог связаться с разработчиками WhatsApp. Они признали, что эта функция не поддерживается.
HoldOffHunger
7

В общем случае имеет смысл отображать ссылку WhatsApp только на устройствах iOS или Android, используя java-скрипт:

   if (navigator.userAgent.match(/iPhone|Android/i)) {
      document.write('<a href="whatsapp://send?text=See..">Share on WhatApp</a>');
   }
Weidenrinde
источник
Что не сработало? Ссылка отображалась на не мобильном устройстве? На мобильном устройстве ссылка не работает?
Вайденринде
Откроется приложение WhatsApp. Но ни текст, ни сообщение не отображаются. Протестировано на нескольких ОС и устройствах. Я написал разработчикам по электронной почте. Официально они не поддерживают это поведение. «К сожалению, в настоящее время это не поддерживается. Мы всегда работаем над улучшением нашего приложения и учтем ваше предложение». (тикет # 172349248330585) Я протестировал ~ 40 других сервисов, только WhatsApp и Viber не поддерживают свою собственную документацию.
HoldOffHunger
7

Только что проверил whatsapp://схему на моем супер старом Android 2.3.3с Whats App 2.11.301, работает как шарм. Вроде бы просто Whats Appверсия. Так Whats Appкак заставляет всех обновляться, его можно безопасно использовать.

В Whats Appдокументации также упоминается эта схема: http://www.whatsapp.com/faq/en/android/28000012

Я использую это на производственном сайте сейчас и буду обновлять здесь, если я получу какие-либо жалобы пользователей.

Изменить (14 ноября): нет жалоб пользователей через пару недель.

JonasB
источник
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

URL социальных сетей

HoldOffHunger
источник
Использование whatsapp://send?text=работает для меня, с или без кодирования URL. Тестировал только на iOS
Snowball
Эй, @Snowball: Спасибо за комментарий, на самом деле, это будет работать только тогда, когда приложение WhatsApp установлено. Это нормально для customProtocol://action=?типов ссылок. Итак, это ничего не сделает на рабочем столе. Для этого потребуется определить ОС, затем использовать один URL-адрес для рабочего стола, а другой - для iOS. Но это действительно совсем другое дело, чем то, о чем спрашивает ОП.
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?
Гумурух
1

используйте его как "whatsapp: // send? text =" + encodeURIComponent (ваш текст здесь), это определенно будет работать.

Джитендра Пал - JP
источник
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 говорит, что мы не смогли найти страницу, которую вы искали
Реза Мортазави
Я не понимаю WhatsApp показывает эту ошибку? Когда?
Густаво Кантеро