0

Androidアプリでphonegapを介してGCMを実行するようにコードを正常に設定しました。受話器の登録IDを保護し、PHPスクリプトでこのIDを使用してアプリにメッセージを送信することができました。

私の唯一の問題は、アプリが開いている間はメッセージがjavascriptアラートとして表示され、アプリが実行されているか実行されていないときにメッセージが受話器のコア通知(アプリと同様)に送信されることを探していることです。

PhonegapのGCMプラグインがこれを実行できるかどうか誰かが知っていますか?

4

4 に答える 4

0

Markのプラグインはうまく機能しますが、アプリが実行されていないときにプラグインを機能させるのに問題があります。その既知のバグ。

プラグインはシステム通知を行わないことに注意してください。それはあなたの電話にデータをプッシュするだけです...それはあなたがこのデータであなたが望むことを何でもすることができるので素晴らしいです、そしてそれは上にいくつかのネイティブコードでシステム通知をプッシュするために使用することができます。

私が抱えている大きな問題は、アプリケーションがオフラインのときにそれを機能させることです。:(

于 2012-08-29T17:00:43.003 に答える
0

この記事はそれをすべて実現します...

http://www.adobe.com/devnet/phonegap/articles/android-push-notifications-with-phonegap.html

「ステータスバー通知」というタイトルのステップで、javascript プラグインではなく Java ネイティブ コードを使用することにしました。

于 2013-05-21T15:14:43.983 に答える
0

ステータスバーの通知を取得するために別のプラグインを使用しました:

https://github.com/phonegap/phonegap-plugins/tree/master/Android/StatusBarNotification

次に、デバイスの gcm Java スクリプトの on receive 関数に、次のコード行を追加します。

window.plugins.statusBarNotification.notify("ここにタイトルを入力してください", "ここにメッセージを入力してください");

正常に動作する唯一の問題は、デバイスをスリープ解除する方法です...見つけたらすぐに回答を投稿します。

デバイスをスリープ解除する方法を見つけました。申し訳ありませんが、返信をすぐに投稿するのを忘れていました。

秘訣は、JAVA コードの GCM サービスの受信者モジュールで保留中の意図を作成することでした。保留中の意図は、アプリケーションのメイン アクティビティであるアクティビティによって受信され、アクティビティは RAM にロードされます。次に、GCM サービスは 5 秒間待機して、メインのアクティビティの読み込みが完了するようにします...そして通知を受け取り、それを cordova に送信します...私にとってはうまくいきますが、レイズする前にアクティビティが既に実行されているかどうかを確認することもできます。保留中の意図。

GCM サービスのコードを以下に追加します。

//Intent notifyIntent = new Intent("com.cordova2.gcm.MainActivity");

Context context2 = getApplicationContext();

  PendingIntent pendingIntent;
  Intent notifyIntent = new Intent();
  notifyIntent.setClass(context2, com.cordova2.gcm.MainActivity.class);
  pendingIntent =  PendingIntent.getActivity(context2, 0, notifyIntent, 0);
  try {
    pendingIntent.send();
} catch (CanceledException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}



long endTime = System.currentTimeMillis() + 5*1000;
while (System.currentTimeMillis() < endTime) {
    synchronized (this) {
        try {
            wait(endTime - System.currentTimeMillis());
        } catch (Exception e) {
        }
    }
}
于 2012-11-20T12:18:33.567 に答える
0

Mark Nutter は、GCM を使用するように変換された Android C2DM Phonegap プラグインのフォークを持っています。

https://github.com/marknutter/GCM-コルドバ

GCM-Cordova/src/com/cordova/gcm/GCMIntentService.java の onMessage メソッドを見てください。これは StatusBarNotifications に適した場所です。

そして、GCM-Cordova/src/com/google/android/gcm/GCMBroadcastReceiver.java の onReceive メソッドを見てください。これは、Toast ポップアップに適した場所です。

于 2012-08-07T14:45:23.207 に答える