Liên kết chia sẻ trên WhatsApp từ trang web di động (không phải ứng dụng) cho Android


213

Tôi đã phát triển một trang web chủ yếu được sử dụng trong điện thoại di động.
Tôi muốn cho phép người dùng chia sẻ thông tin trực tiếp từ trang web vào WhatsApp.

Sử dụng phát hiện UserAgent tôi có thể phân biệt giữa Android và iOS.
Tôi đã có thể khám phá ra rằng để thực hiện những điều trên trong iOS, tôi có thể sử dụng URL:

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

Tôi vẫn đang tìm giải pháp được sử dụng khi HĐH là Android (vì cách trên không hoạt động).
Tôi đoán nó bằng cách nào đó có liên quan đến việc sử dụng "ý định" trong Android, nhưng tôi không thể tìm ra cách thực hiện nó như là tham số cho href.


Cách này kết nối với ứng dụng Whatsapp và có một cách khác để kết nối với tùy chọn web.whatsapp.com. Có cách nào phát hiện xem bạn có ứng dụng hay không, để xem nên kết nối với cái nào?
SrQ

Liên hệ nào sẽ nhận được tin nhắn này?
Codebeat

Câu trả lời:


321

Chỉ cần nhìn thấy nó trên một trang web và dường như hoạt động trên Android mới nhất với chrome mới nhất và whatsapp bây giờ quá! Cung cấp cho các liên kết một shot mới!

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

Kiểm tra lại nó ngày hôm nay (17 ngày tháng 4 năm 2015):
Công trình đối với tôi trên iOS 8 (iPhone 6, phiên bản mới nhất) Android 5 (Nexus 5, phiên bản mới nhất).

Nó cũng hoạt động trên Windows Phone.


1
thực sự có vẻ như URL gốc trong câu hỏi của tôi hiện cũng hoạt động cho Android.
Yochai

Bất cứ ai nêu lên nhận xét sâu sắc chắc chắn của @ MosheL chắc chắn phải có kiến ​​thức sâu sắc về chính xác "mục" của mình là gì.
Dan Dascalescu

6
@Manuel data-action = "share / whatsapp / share" để làm gì?
dùng3362364

4
Dữ liệu phải ở dạng mã hóa url. Ngoài ra, nó sẽ gửi tin nhắn trống trong whatsapp iphone.
Lijo Abraham

1
Một số thay đổi API có thể được tìm thấy trong tài liệu gần đây - faq.whatsapp.com/en/general/26000030/?c Ab = 5245251
abhishek77in

101

Các câu trả lời trên là hơi lỗi thời. Mặc dù các phương thức đó hoạt động, nhưng bằng cách sử dụng phương thức bên dưới, bạn có thể chia sẻ bất kỳ văn bản nào đến một số được xác định trước. Phương pháp dưới đây hoạt động cho android, WhatsApp web, IOS, v.v.

Bạn chỉ cần sử dụng định dạng này:

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

CẬP NHẬT-- Sử dụng cái này từ bây giờ (tháng 11-2018)

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

Sử dụng: https://wa.me/15551234567

Không sử dụng: https://wa.me/+001-(555)1234567

Để tạo liên kết của riêng bạn với một tin nhắn được điền sẵn sẽ tự động xuất hiện trong trường văn bản của một cuộc trò chuyện, hãy sử dụng https://wa.me/whatsappphonenumber/?text=urlencodingtext trong đó whatsappphonenumber là số điện thoại đầy đủ ở định dạng quốc tế và URL -encodingtext là tin nhắn được điền sẵn mã hóa URL.

Ví dụ: https://wa.me/15551234567?text=I 'm% 20interested% 20in% 20your% 20car% 20for% 20sale

Để tạo một liên kết chỉ với một tin nhắn được điền sẵn, hãy sử dụng https://wa.me/?text=urlencodingtext

Ví dụ: https://wa.me/?text=I 'm% 20in %% 20about% 20the% 20ap %% 20 listing

Sau khi nhấp vào liên kết, bạn sẽ được hiển thị một danh sách các địa chỉ liên lạc mà bạn có thể gửi tin nhắn của mình đến.

Để biết thêm thông tin, hãy xem https://www.whatsapp.com/faq/en/general/26000030


Tôi đã thử nghiệm điều này trong tất cả các thiết bị. Tất cả những gì nó làm là mở ứng dụng whatsapp. Không có gì xảy ra sau khi trả tiền. Đã thử nghiệm nhiều thiết bị (iOS, Android, Windows).
Hold OfferHunger 27/03/18

@Hold OfferHunger có, nó sẽ mở ứng dụng whatsapp và người dùng phải chọn liên hệ mà anh ta muốn chia sẻ liên kết / nội dung.
ad08

@ ad08: Đó là cách mà Threema và 40 dịch vụ khác mà tôi đã thử nghiệm hoạt động. Viber và WhatsApp, tuy nhiên, không làm gì cả, tôi đã liên hệ với các nhà phát triển của họ và cả hai đều thừa nhận API không làm gì cả. Tôi đã theo dõi thư từ của họ và 40 người khác (hoạt động) tại đây: github.com/bradvin/social-share-urls/blob/master/README.md
Hold OfferHunger

Hoạt động trên WhatsApp Desktop dưới Mojave
Alesto

6
liên kết wa.me không hoạt động đúng trên điện thoại di động mà không có số điện thoại. Mặc dù tài liệu chính thức nói rằng bạn có thể sử dụng nó, nhưng nó chỉ báo lỗi. Nó hoạt động trên máy tính để bàn, sử dụng web WhatsApp. api.whatsapp.com hoạt động đáng tin cậy trên cả hai.
Ricardo BRGWeb

39

Hiện tại, nó rất dễ dàng để đạt được điều này. Bạn chỉ cần thêm mã sau vào các trang của mình:

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

Và đó là nó. Không cần Javascript, không cần gì khác. Tất nhiên bạn có thể tạo kiểu theo ý muốn và bao gồm một biểu tượng Whatsapp đẹp.

Tôi đã thử nghiệm điều này trong thiết bị Android của mình với Google Chrome. Các phiên bản:

  • Android 4.1.2 (Jelly Bean)
  • Chrome di động 37.0.2062.117. Cũng đã thử nghiệm trên Firefox Mobile 31.0.
  • Whatsapp V 2.11.399

Nó cũng hoạt động trên iOS. Tôi đã thực hiện một thử nghiệm nhanh trên iPhone 5 với Safari và nó cũng hoạt động.

Hy vọng điều này sẽ giúp được ai đó. :-)


3
Để mã hóa nội dung của bạn để chia sẻ sử dụngencodeURIComponent()
nikoskip

1
này, nó làm việc cho tôi cảm ơn :) Chỉ tò mò, nếu có cách nào tôi có thể kiểm tra xem người dùng có thực sự chia sẻ liên kết hay chỉ đơn giản là quay lại trang web?
Nói

1
Cũng hoạt động trên Nexus 5 của tôi với Android 5.0 (Lollipop) và iPhone 5 với iOS 8.1.1.
Narxx

2
@juangalf Nếu tôi muốn chia sẻ hình ảnh bằng phương pháp này thì sao? điều đó cũng có thể, hoặc chỉ văn bản được hỗ trợ?
elembivos

1
@elembivos Tôi cũng hỏi như vậy. Làm thế nào để sendtham số phải được hình thành? Hiện tại, tôi có whatsapp://send?text=data:image/png;base64,iVBORw0KGgoAAAANS...nhưng không chắc bao nhiêu tiền tố bao gồm ...
TMOTTM

27

Theo tài liệu mới, liên kết hiện là:

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

Nếu nó không hoạt động, hãy thử cái này:

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

3
Vì vậy, nó cũng có thể mà không cần số điện thoại. Tài liệu này có thể được tìm thấy ở đây: faq.whatsapp.com/en/general/26000030
Tim Vermaelen

1
Tôi vừa phát hiện ra nó không hoạt động đúng nữa. Nó chỉ hoạt động với số điện thoại. Nếu không có số điện thoại, bạn cần sử dụng api.whatsapp.com
Ricardo BRGWeb 16/07/19

@RicardoBRGWeb chắc chắn về điều này? Tôi chỉ thử trên các trình duyệt web của mình, hoạt động với tôi mà không có số nào, nó nhằm mục đích cho tôi giao diện Web Whatsapp và chia sẻ với người liên hệ
Vincent Decaux

@VincentDecaux nó hoạt động trong trình duyệt máy tính để bàn, ngay cả khi sử dụng chế độ xem trên thiết bị di động. Nhưng nó sẽ không hoạt động trong các trình duyệt di động để mở các ứng dụng kinh doanh whatsapp hoặc whatsapp. Có lẽ họ đã thay đổi uri liên kết nội bộ trong ứng dụng.
Ricardo BRGWeb

Ok, bạn đã thử tùy chọn thứ 2 của tôi chưa? công bằng là tôi đã không thử trên trình duyệt di động, tôi sẽ thử vào ngày mai
Vincent Decaux

14

Gần đây WhatsApp đã cập nhật trên trang web chính thức của mình rằng chúng ta cần sử dụng thẻ HTML này để làm cho nó có thể chia sẻ được với các trang web di động:

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

Bạn có thể thay thế text=để có liên kết của bạn hoặc bất kỳ nội dung văn bản


Tôi đã thử nghiệm điều này cá nhân. Nó mở ứng dụng, nhưng không có gì khác.
Hold OfferHunger

@Hold OfferHunger vì bạn có nhu cầu sử dụng urlencode nếu không nó sẽ không hoạt động
Shiv Singh

@Shiv: Đó không phải là vấn đề của tôi.
Hold OfferHunger

Điều này hoạt động chắc chắn ... Bất kỳ cách nào để chèn ngắt dòng (nhập phím) trong văn bản tin nhắn?
cht

@cht hơi muộn, nhưng bạn có thể sử dụng% 0D khi ngắt dòng
Elro444

11

CẬP NHẬT MỚI NHẤT

Bây giờ bạn có thể sử dụng API mới nhất từ ​​whatsapp https://wa.me/mà không phải lo lắng về tác nhân người dùng, API sẽ xử lý tác nhân người dùng.

Chia sẻ văn bản điền sẵn với tùy chọn lựa chọn liên hệ trong ứng dụng khách WhatsApp tương ứng (Android / iOS / Webapp):

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

Mở hộp thoại trò chuyện cho một người dùng whatsapp cụ thể trong ứng dụng khách WhatsApp tương ứng (Android / iOS / Webapp):

https://wa.me/whatsappphonenumber

Chia sẻ văn bản điền sẵn với một người dùng cụ thể (Kết hợp hai trên):

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

Lưu ý : whatsappphonenumberphải là số điện thoại đầy đủ ở định dạng quốc tế. Bỏ qua mọi số 0, dấu ngoặc hoặc dấu gạch ngang khi thêm số điện thoại ở định dạng quốc tế.

Để có tài liệu chính thức, hãy truy cập https://faq.whatsapp.com/en/general/26000030


wa.me/whatsappphonenumber/?text=urlencodingtext dường như không hoạt động
Kiran

7

Tôi sợ rằng WhatsApp cho Android hiện không hỗ trợ để được gọi từ trình duyệt web.

Tôi có cùng yêu cầu đối với dự án hiện tại của mình và vì tôi không thể tìm thấy bất kỳ thông tin thích hợp nào nên cuối cùng tôi đã tải xuống tệp APK.

Trong Android, nếu một ứng dụng muốn được gọi từ trình duyệt web, ứng dụng đó cần xác định một Hoạt động với danh mục android.intent.c Category.BlawSABLE.

Bạn có thể tìm thêm thông tin về điều này tại đây: https://developers.google.com/chrome/mobile/docs/intents

Nếu bạn xem tệp WhatsApp AndroidManifest.xml, Activiy duy nhất có danh mục BROWSABLE là cái này:

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

Tôi đã chơi với nó một thời gian và tôi không thể làm cho nó hoạt động được. Việc tôi nhận được nhiều nhất là mở ứng dụng WhatsApp từ Chrome, nhưng tôi không thể tìm ra cách đặt nội dung tin nhắn và người nhận.

Vì nó không được tài liệu bởi nhóm WhatsApp, tôi nghĩ rằng điều này vẫn đang được tiến hành. Có vẻ như trong tương lai WhatsApp cũng sẽ xử lý SMS.

Cách duy nhất để có thêm thông tin là liên hệ với nhóm nhà phát triển WhatsApp, những gì tôi đã thử, nhưng tôi vẫn đang chờ phản hồi.

Trân trọng!


1
Tôi có thể yêu cầu bạn chia sẻ bất kỳ thông tin mới về vấn đề này ở đây không? Sẽ rất thuận tiện cho tôi quá. Dù sao, cảm ơn bạn cho câu trả lời đầy đủ.
ccalboni

Tôi đã có thể liên lạc với các nhà phát triển WhatsApp. Họ thừa nhận tính năng này không được hỗ trợ.
Hold OfferHunger

7

Nói chung, chỉ có ý nghĩa khi chỉ hiển thị Liên kết Whatsapp trên Thiết bị iOS hoặc Android, sử dụng tập lệnh java:

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

Điều gì đã không làm việc? Liên kết đã được hiển thị trên một thiết bị không di động? Trên thiết bị di động liên kết không hoạt động?
Weidenrinde

Ứng dụng WhatsApp mở ra. Nhưng không một văn bản hay một tin nhắn nào được hiển thị. Đã thử nghiệm trên một số hệ điều hành và thiết bị. Tôi gửi e-mail cho các nhà phát triển. Họ chính thức không hỗ trợ hành vi này "Thật không may, hiện tại điều đó không được hỗ trợ. Chúng tôi luôn nỗ lực để cải thiện ứng dụng của mình và sẽ xem xét đề xuất của bạn." (vé # 172349248330585) Tôi đã thử nghiệm ~ 40 dịch vụ khác, chỉ WhatsApp và Viber không hỗ trợ tài liệu của riêng họ.
Hold OfferHunger

7

Chỉ cần thử nghiệm whatsapp://sơ đồ trên siêu cũ của tôi Android 2.3.3với Whats App 2.11.301, hoạt động như một nét duyên dáng. Nó dường như chỉ là Whats Appphiên bản. Vì Whats Appbuộc mọi người phải cập nhật, nên sử dụng nó là an toàn.

Các Whats Apptài liệu cũng đề cập đến chương trình rằng: http://www.whatsapp.com/faq/en/android/28000012

Tôi hiện đang sử dụng trang này trên một trang sản xuất và sẽ cập nhật tại đây, nếu tôi nhận được bất kỳ khiếu nại nào của người dùng.

Chỉnh sửa (14 tháng 11): Không có khiếu nại của người dùng sau một vài tuần.


6

Các tài liệu chính thức nói để sử dụng : wa.me. Đừng sử dụng wa.me. Chỉ cần tự mình thử: https://wa.me/?text=SomeTexttoShare Kết quả cho tôi:

Chúng tôi không thể tìm thấy trang bạn đang tìm kiếm

Có vẻ như bạn đang tìm kiếm một trang không tồn tại. Hoặc một trang chúng ta có thể vừa xóa. Dù bằng cách nào, hãy quay lại hoặc chắc chắn kiểm tra url, chính tả của bạn và thử lại.

Nếu bạn muốn chia sẻ, bạn hoàn toàn phải sử dụng một trong hai định dạng URL sau:

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

Nếu bạn thích xem một dự án theo dõi các URL này, thì hãy xem chúng tôi!: Https://github.com/bradvin/social-share-urls#telegramme

URL chia sẻ xã hội


Sử dụng whatsapp://send?text=không hoạt động đối với tôi, có hoặc không có mã hóa URL. Chỉ được thử nghiệm trên iOS
Snowball

Xin chào, @Snowball: Thực sự cảm ơn bạn đã bình luận, điều đó sẽ chỉ hoạt động khi ứng dụng whatsapp được cài đặt. Điều đó là bình thường đối với customProtocol://action=?các loại liên kết. Vì vậy, điều đó sẽ không làm gì trên máy tính để bàn. Sử dụng sẽ yêu cầu phát hiện HĐH, sau đó sử dụng một URL cho máy tính để bàn và một URL khác cho iOS. Nhưng đó thực sự là một vấn đề khác hoàn toàn so với những gì OP đang yêu cầu.
Hold OfferHunger

3

Chuyển đổi các liên kết chia sẻ whatsapp theo nền tảng cho dù máy tính để bàn hoặc thiết bị di động.

Điều này hoạt động có hoặc không cung cấp số điện thoại trong liên kết.

Dành cho thiết bị di động

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

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

Dành cho máy tính để bàn

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

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

3

Mã này làm việc cho tôi.

Sau khi nhấp vào liên kết, nó sẽ yêu cầu bạn chọn liên hệ để chia sẻ một tin nhắn.

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

Bạn có thể thêm thuộc tính target = "_ blank" để mở thuộc tính trong cửa sổ hoặc tab mới.

Tôi không nghĩ số điện thoại là cần thiết khi ai đó muốn chia sẻ một tin nhắn hoặc bài viết cụ thể.


điều này có thể được mở trong máy tính để bàn trình duyệt? để chuyển tiếp đến trang web.whatsapp?
gumuruh

1

sử dụng nó như "whatsapp: // send? text =" + encodeURIComponent (văn bản của bạn ở đây), nó chắc chắn sẽ hoạt động.


0

Cố gắng làm theo cách này:

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

Thậm chí bạn có thể gửi tin nhắn mà không cần nhập số điện thoại trong liên kết:

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

Sau khi nhấp vào liên kết, bạn sẽ được hiển thị một danh sách các địa chỉ liên lạc mà bạn có thể gửi tin nhắn của mình đến.

Thêm thông tin trong https://faq.whatsapp.com/en/general/26000030 .

Chúc may mắn!


whatsapp nói Chúng tôi không thể tìm thấy trang bạn đang tìm kiếm
Reza Mortazavi

Tôi không hiểu WhatsApp cho thấy lỗi đó? Khi nào?
Gustavo Cantero
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.