Udostępnianie linku w WhatsApp z witryny mobilnej (nie aplikacji) dla Androida

213

Stworzyłem stronę internetową, która jest głównie używana w telefonach komórkowych.
Chcę umożliwić użytkownikom udostępnianie informacji bezpośrednio ze strony internetowej w WhatsApp.

Korzystając z wykrywania UserAgent, mogę rozróżnić Android i iOS.
Udało mi się odkryć, że w celu zaimplementowania powyższego w iOS mogę użyć adresu URL:

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

Nadal szukam rozwiązania, które będzie używane, gdy system operacyjny to Android (ponieważ powyższe nie działa).
Wydaje mi się, że ma to jakiś związek z używaniem „zamiaru” w Androidzie, ale nie mogłem wymyślić, jak to zrobić jako parametr dla href.

Yochai
źródło
W ten sposób łączy się z aplikacją Whatsapp i istnieje inny sposób połączenia z opcją web.whatsapp.com. Czy jest jakiś sposób na wykrycie, czy masz aplikację, czy nie, aby sprawdzić, z którym się połączyć?
SrQ
Który kontakt otrzyma tę wiadomość?
Codebeat

Odpowiedzi:

321

Właśnie zobaczyłem to na stronie i wydaje się, że działa teraz na najnowszym Androidzie z najnowszym Chrome i WhatsApp! Daj link nowy strzał!

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

Sprawdzono go dzisiaj (17 th kwietnia 2015):
u mnie działa na iOS (iPhone 6 8, najnowszej wersji Androida) 5 (Nexus 5, najnowsze wersje).

Działa również na Windows Phone.

Manuel
źródło
1
Rzeczywiście wydaje się, że oryginalny adres URL w moim pytaniu działa teraz również dla Androida.
Yochai
Ktokolwiek głosował bez wątpienia wnikliwy komentarz @ MosheL, musi mieć dogłębną wiedzę o tym, czym dokładnie jest jego „przedmiot”.
Dan Dascalescu,
6
@Manuel do czego służy data-action = "share / whatsapp / share"?
user3362364
4
Dane powinny być w postaci zakodowanej w adresie URL. W przeciwnym razie wyśle ​​pustą wiadomość w telefonie iPhone WhatsApp.
Lijo Abraham
1
Niektóre zmiany interfejsu API można znaleźć w najnowszym dokumencie - faq.whatsapp.com/en/general/26000030/?category=5245251
abhishek77in
102

Powyższe odpowiedzi są nieco nieaktualne. Chociaż te metody działają, ale stosując poniższą metodę, możesz udostępnić dowolny tekst do określonej liczby. Poniższa metoda działa na Androidzie, WhatsApp, IOS itp.

Musisz tylko użyć tego formatu:

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

AKTUALIZACJA - użyj tego od teraz (listopad 2018)

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

Posługiwać się: https://wa.me/15551234567

Nie używaj: https://wa.me/+001-(555)1234567

Aby utworzyć własny link z wstępnie wypełnioną wiadomością, która automatycznie pojawi się w polu tekstowym czatu, użyj https://wa.me/whatsappphonenumber/?text=urlencodedtext gdzie whatsappphonenumber to pełny numer telefonu w formacie międzynarodowym i adres URL -encodedtext to wstępnie wypełniona wiadomość zakodowana w adresie URL.

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

Aby utworzyć link z wstępnie wypełnioną wiadomością, użyj https://wa.me/?text=urlencodedtext

Przykład: https://wa.me/?text=M% 20inquiring% 20about% 20listing% 20apartment% 20listing

Po kliknięciu linku zostanie wyświetlona lista kontaktów, do których możesz wysłać wiadomość.

Aby uzyskać więcej informacji, zobacz https://www.whatsapp.com/faq/en/general/26000030

ad08
źródło
Przetestowałem to na wszystkich urządzeniach. Wystarczy otworzyć aplikację WhatsApp. Nic się nie dzieje potem. Testowane wiele urządzeń (iOS, Android, Windows).
HoldOffHunger
@HoldOffHunger tak, otworzy aplikację WhatsApp, a użytkownik musi wybrać kontakt, z którym chce udostępnić link / treść.
ad08
@ ad08: Tak działał Threema i pozostałe 40 usług, które testowałem. Jednak Viber i WhatsApp nic nie robią, skontaktowałem się z ich twórcami i obaj przyznali, że API nic nie robi. Śledziłem
HoldOffHunger
Działa na WhatsApp Desktop pod Mojave
Alchem
6
Linki wa.me nie działają poprawnie na urządzeniach mobilnych bez numeru telefonu. Mimo że oficjalna dokumentacja mówi, że możesz jej użyć, po prostu daje błąd. Działa na komputerze, używając sieci WhatsApp. api.whatsapp.com działa niezawodnie na obu.
Ricardo BRGWeb
39

Obecnie bardzo łatwo to osiągnąć. Musisz tylko dodać następujący kod do swoich stron:

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

I to wszystko. Nie wymaga Javascript, nic więcej nie jest potrzebne. Oczywiście możesz stylizować go tak, jak chcesz i zawierać ładną ikonę Whatsapp.

Przetestowałem to na moim urządzeniu z Androidem z Google Chrome. Wersje:

  • Android 4.1.2 (Jelly Bean)
  • Chrome Mobile 37.0.2062.117. Przetestowano również na Firefox Mobile 31.0.
  • Whatsapp V 2.11.399

Działa również na iOS. Zrobiłem szybki test na iPhonie 5 z Safari i działa również.

Mam nadzieję, że to komuś pomoże. :-)

juangalf
źródło
3
Do kodowania treści w celu udostępniania należy użyćencodeURIComponent()
nikoskip
1
hej, to zadziałało dla mnie. dzięki :) Ciekawe, czy istnieje sposób, aby sprawdzić, czy użytkownik rzeczywiście udostępnił link, czy po prostu wrócił na stronę?
Powiedział
1
Działa również na moim Nexusie 5 z Androidem 5.0 (Lollipop) i iPhonie 5 z iOS 8.1.1.
Narxx
2
@juangalf Co zrobić, jeśli chcę udostępnić obraz przy użyciu tej metody? czy to będzie możliwe, czy tylko obsługiwany tekst?
elembivos,
1
@elembivos Proszę o to samo. Jak sendnależy sformatować parametr? Obecnie nie mam whatsapp://send?text=data:image/png;base64,iVBORw0KGgoAAAANS...pewności, ile prefiksów ma zawierać ...
TMOTTM
27

Zgodnie z nową dokumentacją link jest teraz:

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

Jeśli to nie działa, spróbuj tego:

<a href="whatsapp://send?text=urlencodedtext">Share this</a>
Vincent Decaux
źródło
3
Jest to również możliwe bez numeru telefonu. Ten dokument można znaleźć tutaj: faq.whatsapp.com/en/general/26000030
Tim Vermaelen
1
Właśnie odkryłem, że to już nie działa poprawnie. Po prostu działa z numerem telefonu. Bez numeru telefonu musisz użyć api.whatsapp.com
Ricardo BRGWeb
@RicardoBRGWeb pewno tego? Właśnie wypróbowałem w swoich przeglądarkach internetowych, działa dla mnie bez żadnego numeru, służy mi interfejs Web Whatsapp i udostępnianie kontaktu
Vincent Decaux
@ VincentDecaux działa w przeglądarkach komputerowych, nawet w trybie widoku mobilnego. Ale to nie działa w przeglądarkach mobilnych, aby otwierać aplikacje biznesowe WhatsApp lub WhatsApp. Prawdopodobnie zmienili wewnętrzny link linkujący w aplikacji.
Ricardo BRGWeb
Ok, wypróbowałeś moją drugą opcję? dość nie próbowałem na mobilnej przeglądarce, spróbuję jutro
Vincent Decaux
14

Niedawno WhatsApp zaktualizował na swojej oficjalnej stronie internetowej, że musimy użyć tego tagu HTML, aby udostępnić go stronom mobilnym:

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

Możesz zamienić, text=aby mieć link lub dowolną treść tekstową

Aadil Keshwani
źródło
Przetestowałem to osobiście. Otwiera aplikację, ale nic więcej.
HoldOffHunger
@HoldOffHunger, ponieważ musisz użyć urlencode, inaczej nie zadziała
Shiv Singh
@Shiv: To nie był mój problem.
HoldOffHunger
Działa to na pewno ... Jakikolwiek sposób wstawiania podziałów wierszy (wprowadzania kluczy) w tekście wiadomości?
cht
@cht trochę późno, ale możesz użyć% 0D jako
podziałów
11

NAJNOWSZA AKTUALIZACJA

Teraz możesz korzystać z najnowszego API z WhatsApp https://wa.me/ bez martwienia się o , API zajmie się obsługą klienta.

Udostępnij wstępnie wypełniony tekst z opcją wyboru kontaktu w odpowiednim kliencie WhatsApp (Android / iOS / Webapp):

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

Otwórz okno dialogowe czatu dla konkretnego użytkownika WhatsApp w odpowiednim kliencie WhatsApp (Android / iOS / Webapp):

https://wa.me/whatsappphonenumber

Udostępnij wstępnie wypełniony tekst określonemu użytkownikowi (Połącz powyżej dwóch):

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

Uwaga :whatsappphonenumber powinien być pełny numer telefonu w formacie międzynarodowym. Podczas dodawania numeru telefonu w formacie międzynarodowym pomiń zera, nawiasy i myślniki.

Aby uzyskać oficjalną dokumentację, odwiedź stronę https://faq.whatsapp.com/en/general/26000030

Shri
źródło
wa.me/whatsappphonenumber/?text=urlencodedtext nie działa wydaje się
Kiran
7

Obawiam się, że WhatsApp na Androida nie obsługuje obecnie wywoływania z przeglądarki internetowej.

Miałem takie same wymagania dotyczące mojego obecnego projektu, a ponieważ nie mogłem znaleźć żadnych odpowiednich informacji, skończyłem pobieranie pliku APK.

W Androidzie, jeśli aplikacja chce zostać wywołana z przeglądarki internetowej, musi zdefiniować działanie w kategorii android.intent.category.BROWSABLE.

Więcej informacji na ten temat można znaleźć tutaj: https://developers.google.com/chrome/mobile/docs/intents

Jeśli spojrzysz na plik WhatsApp AndroidManifest.xml, jedyne Activiy z kategorią BROWSABLE to:

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

Bawiłem się nim przez jakiś czas i nie mogłem tego zrobić. Najmocniej dostałem aplikację WhatsApp z Chrome, ale nie mogłem znaleźć sposobu na ustawienie treści wiadomości i odbiorcy.

Ponieważ nie jest to udokumentowane przez zespół WhatsApp, myślę, że wciąż jest w toku. Wygląda na to, że w przyszłości WhatsApp będzie również obsługiwać SMS-y.

Jedynym sposobem, aby uzyskać więcej informacji, jest skontaktowanie się z zespołem programistów WhatsApp, co próbowałem, ale wciąż czekam na odpowiedź.

Pozdrowienia!

oliferna
źródło
1
Czy mogę prosić o udostępnienie tutaj jakichkolwiek nowych informacji na temat tego problemu? Byłoby to dla mnie bardzo wygodne. W każdym razie dziękuję za wyczerpującą odpowiedź.
ccalboni
Byłem w stanie skontaktować się z twórcami WhatsApp. Przyznali, że ta funkcja nie jest obsługiwana.
HoldOffHunger
7

Zasadniczo sensowne jest wyświetlanie linku Whatsapp tylko na urządzeniach iOS lub Android, przy użyciu skryptu Java:

   if (navigator.userAgent.match(/iPhone|Android/i)) {
      document.write('<a href="whatsapp://send?text=See..">Share on WhatApp</a>');
   }
Weidenrinde
źródło
Co nie działa? Link był wyświetlany na urządzeniu innym niż mobilne? Na urządzeniu mobilnym link nie działał?
Weidenrinde
Otwiera się aplikacja WhatsApp. Ale nie wyświetla się ani tekst, ani wiadomość. Testowany na kilku systemach operacyjnych i urządzeniach. Wysłałem e-mail do programistów. Oficjalnie nie popierają tego zachowania „Niestety nie jest to obecnie obsługiwane. Zawsze pracujemy nad ulepszeniem naszej aplikacji i weźmiemy pod uwagę Twoją sugestię”. (bilet # 172349248330585) Testowałem ~ 40 innych usług, tylko WhatsApp i Viber nie obsługują własnej dokumentacji.
HoldOffHunger
7

Właśnie testował whatsapp://system na moim Super starego Android 2.3.3z Whats App 2.11.301, działa jak czar. To chyba tylko Whats Appwersja. OdWhats App zmusza wszystkich do aktualizacji, korzystanie z niej powinno być bezpieczne.

Whats AppDokumentacja również wspomnieć, że schemat: http://www.whatsapp.com/faq/en/android/28000012

Używam tego teraz na stronie produkcyjnej i zaktualizuję się tutaj, jeśli pojawią się jakieś skargi użytkowników.

Edycja (14 listopada): Brak skarg użytkowników po kilku tygodniach.

JonasB
źródło
6

Oficjalne docs powiedzieć do użycia: wa.me. Nie używać wa.me. Po prostu spróbuj sam: https://wa.me/?text=SomeTexttoShare Wyniki dla mnie:

Nie mogliśmy znaleźć strony, której szukasz

Wygląda na to, że szukasz strony, która nie istnieje. Lub strona, którą mogliśmy właśnie usunąć. Tak czy inaczej, wróć lub sprawdź adres URL, pisownię i spróbuj ponownie.

Jeśli chcesz udostępnić, musisz bezwzględnie użyć jednego z dwóch następujących formatów adresów URL:

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

Jeśli chcesz obejrzeć projekt, który śledzi te adresy URL, sprawdź nas !: https://github.com/bradvin/social-share-urls#telegramme

Adresy URL udostępniania społecznościowego

HoldOffHunger
źródło
Korzystanie whatsapp://send?text=działa dla mnie, z kodowaniem URL lub bez. Testowałem go tylko na iOS
Snowball
Hej, @Snowball: Dzięki za komentarz, to zadziała tylko po zainstalowaniu aplikacji WhatsApp. To normalne w przypadku customProtocol://action=?rodzajów linków. To nic nie da na pulpicie. Korzystanie z tego wymagałoby wykrycia systemu operacyjnego, a następnie użycia jednego adresu URL na komputer, a drugiego na iOS. Ale to naprawdę inna sprawa niż ta, o którą prosi OP.
HoldOffHunger
3

Przełącz linki udostępniania WhatsApp zgodnie z platformą, zarówno stacjonarną, jak i mobilną.

Działa to z podaniem numeru telefonu w linku lub bez niego.

Dla urządzeń mobilnych

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

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

Na komputery stacjonarne

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

   window.open(vm.LinkTextToShare,"_blank");
Sitaram
źródło
3

Ten kod działał dla mnie.

Po kliknięciu linku zostaniesz poproszony o wybranie kontaktu do udostępnienia wiadomości.

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

Możesz dodać atrybut target = "_ blank", aby otworzyć go w nowym oknie lub karcie.

Nie sądzę, aby numer telefonu był potrzebny, gdy ktoś chce udostępnić określoną wiadomość lub artykuł.

Rachit Mangi
źródło
czy można to otworzyć na pulpicie przeglądarki? więc przeniesiono na stronę web.whatsapp?
gumuruh
1

użyj go jak „whatsapp: // send? text =” + encodeURIComponent (twój tekst idzie tutaj), to na pewno zadziała.

Jitendra Pal - JP
źródło
0

Spróbuj zrobić to w ten sposób:

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

Nawet Ty możesz wysyłać wiadomości bez wprowadzania numeru telefonu w linku:

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

Po kliknięciu linku zostanie wyświetlona lista kontaktów, do których możesz wysłać wiadomość.

Więcej informacji na https://faq.whatsapp.com/en/general/26000030 .

Powodzenia!

Gustavo Cantero
źródło
whatsapp mówi: Nie mogliśmy znaleźć strony, której szukasz
Reza Mortazavi
Nie rozumiem. WhatsApp pokazuje ten błąd? Kiedy?
Gustavo Cantero