Android用モバイルWebサイト(アプリケーションではない)からのWhatsApp上のリンクの共有


213

主に携帯電話で使用されるウェブサイトを開発しました。
ユーザーがWebページからWhatsAppに直接情報を共有できるようにしたい。

UserAgent検出を使用して、AndroidとiOSを区別できます。
上記をiOSに実装するために、次のURLを使用できることがわかりました。

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

OSがAndroidの場合に使用するソリューションを探しています(上記では機能しないため)。
Androidで「インテント」を使用することに何らかの関係があると思いますが、hrefのパラメーターとしてそれを行う方法を理解できませんでした。


この方法でWhatsappアプリに接続し、web.whatsapp.comオプションに接続する別の方法があります。アプリがあるかどうかを検出して、どちらに接続するかを確認する方法はありますか?
SrQ

このメッセージを受け取る連絡先はどれですか?
コードビート

回答:


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(ネクサス5、最新のバージョン)。

Windows Phoneでも動作します。


1
実際、私の質問の元のURLはAndroidでも機能するようです。
Yochai 2014年

@MosheLの疑いなく洞察に満ちたコメントに賛成した人は、彼の「アイテム」が何であるかを詳しく知っている必要があります。
Dan Dascalescu、2015

6
@Manuel data-action = "share / whatsapp / share"は何のためのものですか?
user3362364 2015

4
データはURLエンコードされた形式である必要があります。そうでない場合、whatsapp iphoneで空白のメッセージが送信されます。
Lijo Abraham、

1
一部のAPIの変更は、最近のドキュメントにあります-faq.whatsapp.com/en/general/26000030/?category=5245251
abhishek77in

101

上記の回答は少し時代遅れです。これらの方法は機能しますが、以下の方法を使用することにより、任意のテキストを事前定義された数値に共有できます。以下の方法は、Android、WhatsApp Web、IOSなどで機能します。

次の形式を使用する必要があります。

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

更新-これを今から使用する(Nov-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=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 2018年

@HoldOffHungerはい、それはwhatsappアプリケーションを開き、ユーザーはリンク/コンテンツを共有したい連絡先を選択する必要があります。
ad08

@ ad08:これが、Threemaと私がテストした他の40のサービスが機能した方法です。しかし、ViberとWhatsAppは何もせず、私は彼らの開発者に連絡しました、そして彼らは両方ともAPIが何もしないことを認めました。私はそれらの対応と他の40のAPI(機能する)をここで追跡し
HoldOffHunger

Mojaveの下のWhatsAppデスクトップで動作します
Alchem

6
wa.meリンクは、電話番号がないモバイルでは正しく機能しません。公式ドキュメントにはそれを使用できると記載されていますが、エラーが発生するだけです。WhatsApp Webを使用して、デスクトップで動作します。api.whatsapp.comは両方で確実に機能します。
Ricardo 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 Mobile 37.0.2062.117。Firefox Mobile 31.0でもテストされています。
  • Whatsapp V 2.11.399

iOSでも動作します。私はiPhone 5でSafariを使って簡単なテストを行いましたが、同様に機能します。

これが誰かを助けることを願っています。:-)


3
コンテンツをエンコードして共有する場合encodeURIComponent()
nikoskip

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これは確かですか?私は自分のWebブラウザーを試してみましたが、番号がなくても機能し、Web Whatsappインターフェイスを使用して連絡先と共有します
Vincent Decaux

@VincentDecauxは、モバイルビューモードを使用している場合でも、デスクトップブラウザーで機能します。ただし、whatsappまたはwhatsappビジネスアプリを開くためのモバイルブラウザーでは機能しません。おそらく、アプリの内部リンクURIが変更されています。
Ricardo BRGWeb

わかりました、私の2番目のオプションを試しましたか?モバイルブラウザーを試したのではなく、明日試してみる
Vincent Decaux

14

最近WhatsAppが公式ウェブサイトで更新されました。モバイルサイトで共有できるようにするには、このHTMLタグを使用する必要があります。

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

text=リンクまたは任意のテキストコンテンツに置き換えることができます


私はこれを個人的にテストしました。アプリケーションを開きますが、それ以外は何もしません。
HoldOffHunger 2018年

@HoldOffHunger urlencodeを使用する必要があるため、そうでない場合は機能しません
Shiv Singh

@シブ:それは私の問題ではありませんでした。
HoldOffHunger 2018年

これは確実に機能しています...メッセージテキストに改行(Enterキー)を挿入する方法はありますか?
2018年

@cht少し遅れますが、%0Dを改行として使用できます
Elro444

11

最新の更新

これでhttps://wa.me/、ユーザーエージェントを気にすることなく、whatsappから最新のAPIを使用できます。APIはユーザーエージェントの処理を行います。

それぞれのwhatsappクライアント(Android / iOS / Webapp)の連絡先選択オプションで事前に入力されたテキストを共有します:

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

それぞれのwhatsappクライアント(Android / iOS / Webapp)で特定のwhatsappユーザーのチャットダイアログを開く:

https://wa.me/whatsappphonenumber

事前入力されたテキストを特定のユーザーと共有します(2つ以上を組み合わせる):

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

whatsappphonenumber国際形式の完全な電話番号である必要があります。国際形式で電話番号を追加する場合は、ゼロ、角括弧、ダッシュを省略してください。

公式ドキュメントについては、https://faq.whatsapp.com/en/general/26000030をご覧ください。


wa.me/whatsappphonenumber/?text=urlencodedtextが機能していないようです
Kiran

7

WhatsApp for Androidは現在、Webブラウザーからの呼び出しをサポートしていません。

現在のプロジェクトにも同じ要件があり、適切な情報が見つからなかったため、APKファイルをダウンロードしてしまいました。

Androidでは、アプリケーションがWebブラウザーから呼び出されるようにするには、カテゴリーandroid.intent.category.BROWSABLEでアクティビティを定義する必要があります。

これについて詳しくは、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
この問題に関する新しい情報をここで共有してもらえますか?私にとってもとても便利でしょう。とにかく、徹底的な回答ありがとうございます。
カルボニー2014年

WhatsApp開発者と連絡を取ることができました。彼らはこの機能がサポートされていないことを認めました。
HoldOffHunger 2018年

7

一般的に、Javaスクリプトを使用して、WhatsappリンクをiOSまたはAndroidデバイスにのみ表示することは意味があります。

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

何がうまくいかなかったのですか?リンクはモバイル以外のデバイスに表示されましたか?モバイルデバイスでリンクが機能しませんでしたか?
ヴァイデンリンデ

WhatsAppアプリケーションが開きます。ただし、テキストもメッセージも表示されません。複数のOSとデバイスでテスト済み。開発者にメールを送りました。彼らは公式にこの動作をサポートしていません。「残念ながら、現時点ではサポートされていません。アプリの改善に常に取り組んでおり、ご提案を考慮いたします。」(チケット#172349248330585)私は他に最大40のサービスをテストしましたが、WhatsAppとViberのみが独自のドキュメントをサポートしていません。
HoldOffHunger 2018年

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

現在、本番サイトで使用していますが、ユーザーからの苦情があった場合は、ここで更新します。

編集(11月14日):数週間後、ユーザーからの苦情はありません。


6

公式ドキュメントは使用するように言います:wa.me。使用しないでくださいwa.me。試してみてください:https : //wa.me/?text=SomeTexttoShare 結果:

お探しのページが見つかりませんでした

存在しないページを探しているようです。または、削除したばかりのページかもしれません。どちらの方法でも、戻るか、URLとスペルを確認して、もう一度やり直してください。

共有する場合は、次の2つの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


を使用whatsapp://send?text=しても、URLエンコードの有無に関係なく機能します。iOSでのみテスト
Snowball

@Snowballさん、コメントありがとうございます。実際には、whatsappアプリがインストールされている場合にのみ機能します。これcustomProtocol://action=?はリンクのタイプでは正常です。だから、それはデスクトップでは何もしません。それを使用するには、OSを検出し、デスクトップ用に1つの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ページに転送されましたか?
グムル

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.