1

アプリケーションがユーザーにプッシュ通知を送信するために、Android GCM に取り組んでいます。そして、私はこのチュートリアルに従っています

http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

しかし、このチュートリアルでは、個々のデバイスにプッシュ通知を送信できることが示されています。しかし、一度にすべてのユーザーにプッシュ通知を送信したいと考えています。では、この手法をどのように実装できますか。

4

4 に答える 4

5

私はすでに同じ問題に直面し、それを解決しました。一度にすべてのユーザーにプッシュ通知を送信するには、前述のチュートリアルに記載されているすべてのことを行う必要があります。ただし、次の 2 つのファイルを変更する必要がありますindex.phpsend_message.php

  1. index.php

    を。JavaScript コードを次のように置き換えます。

    $(document).ready(function(){
    
    });
    function sendToAll(){
        var data = $("#sendtoall").serialize();
        $("#sendtoall").unbind('submit');               
        $.ajax({
            url: "send_message.php",
            type: 'GET',
            data: data,
            beforeSend: function() {
    
            },
            success: function(data, textStatus, xhr) {
                  $('.txt_message').val("");
            },
            error: function(xhr, textStatus, errorThrown) {
    
            }
        });
        return false;
    }
    

    b. body タグ内のコードを次のように置き換えます (最初の 5 行をスキップします)。

    <div class="container">
        <h1>No of Devices Registered: <?php echo $no_of_users; ?></h1>
        <hr/>
        <ul class="devices">
            <?php
            if ($no_of_users > 0) {
                ?>
                <li>
                    <form id="sendtoall" name="" method="post" onsubmit="return sendToAll()">
                        <div class="send_container">                               
                            <textarea rows="3" name="message" cols="25" class="txt_message" placeholder="Type message here"></textarea>
                            <?php
                            while ($row = mysql_fetch_array($users)) {
                            ?>
                            <input type="hidden" name="regId[]" value="<?php echo $row["gcm_regid"]; ?>"/>
                            <?php
                            }
                            ?>
                            <input type="submit" class="send_btn" value="Send To All" onclick=""/>
                        </div>
                    </form>
                </li>
                <?php
            } else { ?>
                <li>
                    No Users Registered Yet!
                </li>
            <?php } ?>
        </ul>
    </div>
    <div class="clear"></div>
    
  2. send_message.php

    次の行を置き換えます。

    $registatoin_ids = array($regId);
    

    $registatoin_ids = $regId; 
    
于 2013-09-03T12:01:05.667 に答える
1

プッシュ モジュールが統合された「サービスとしてのバックエンド」を使用することもできます。したがって、バックエンドからすべての参加者に通知できます。「アピオマット」をしばらく使用して満足しました

于 2013-05-29T07:38:08.817 に答える
0

はい、マルチキャスト メッセージ サービスも許可するため、GCM で送信できます。

以下のフォーマットを使用して:

{
  "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
  "data" : {
    ...
  },
}

ここで、キーregistration_idsの値は次のようになります。

メッセージを受信するデバイス (登録 ID) のリストを含む文字列配列。少なくとも 1 つ、最大で 1000 の登録 ID が含まれている必要があります。マルチキャスト メッセージを送信するには、JSON を使用する必要があります。1 つのメッセージを 1 つのデバイスに送信するには、登録 ID が 1 つだけの JSON オブジェクトまたはプレーン テキストを使用できます (以下を参照)。必須。

それがあなたを助けることを願っています。

于 2013-04-27T13:42:57.433 に答える
0

GCM トピック メッセージングを使用すると、アプリ サーバーは、特定のトピックにオプトインした複数のデバイスにメッセージを送信できます。パブリッシュ/サブスクライブ モデルに基づいて、トピック メッセージングは​​アプリごとに最大 100 万のサブスクリプションをサポートします。アプリ サーバーは最大 2KB のペイロードを持つメッセージをトピックに送信し、GCM はメッセージ ルーティングを処理し、メッセージを適切なデバイスに確実に配信します。たとえば、天気予報アプリのユーザーは、「重大な気象警報」トピックにオプトインして、指定された地域を脅かす嵐の通知を受け取ることができます。すべてのユーザーにメッセージを送信するには、トピックを使用できます。
出典: Google デベロッパー ウェブサイト

見てみると、すべてのユーザーがトピックに登録していることがわかります。トピックごとに、トピックを持つすべてのユーザーに送信できます。

トピックに送信するには、このページ https://developers.google.com/cloud-messaging/topic-messagingを使用する必要があります

プッシュ通知をテストするには、Chrome 拡張機能で「高度なレスト クライアント」を使用できます。 プッシュ通知テスト

于 2015-11-11T12:50:53.150 に答える