0

私はGCM Cordova(Cordova 2.6で昨日ダウンロード)を使用していますが、サンプルコードを使用して通知を正常に受信できることがわかりました。ただし、通知をタップすると、通知がクリアされ、通知リストが閉じられます。アプリ自体は起動しません。

Eclipse に接続された電話でアプリを実行すると、GCMIntentService がメッセージ (onMessage) を受信し、最終的に「ウェイクロックの解放」を実行することがわかりますが、アプリは開きません。そうではありませんか、これを実現するために例のコードを変更する必要がありますか。

また、アプリを強制停止すると、通知が受信されなくなることにも気付きました。これは正常ですか?

4

1 に答える 1

0

答えは単純ではないようですが、意図を設定する必要があります。

この記事に従って開始しました: http://www.adobe.com/devnet/phonegap/articles/android-push-notifications-with-phonegap.html

この時点ではタップが機能しないため、次のようにしました。次のコードをマニフェストに追加しました。

<intent-filter>
<action android:name="NAMEOFAPP.STARTME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

このコードは GCMIntentService.java ファイルに配置されました。これは、上記のプロジェクトが参照する通知コードの多くを置き換えます。

    String message = extras.getString("message");
    String title = extras.getString("title");

    Intent nintent = new Intent("uk.ac.chester.uocmobile.STARTME");
    nintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);


    nintent.addCategory(Intent.CATEGORY_DEFAULT);
    PendingIntent pintent = PendingIntent.getActivity(context, 0, nintent, 0);

    NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.icon)
                .setContentTitle(context.getString(R.string.app_name))
                .setContentIntent(pintent)
                .setWhen(System.currentTimeMillis())
                .setPriority(Notification.PRIORITY_HIGH)
                .setAutoCancel(true)
                .setContentText(message)
                .setDefaults(Notification.DEFAULT_ALL);
    NotificationManager mNotificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            mNotificationManager.notify(0, mBuilder.build());

このインポートを同じファイルに追加する必要があります。

            import android.support.v4.app.NotificationCompat;

次のプロセスなしでこれを行うと、コンパイル時にエラーが発生します。

プロジェクトを右クリックし、[Android Tools] -> [Add Support Library] に移動します。Android サポート ライブラリ、リビジョン 13 を追加します。これにより、これらの呼び出しがプロジェクトに追加され、すべてが機能するようになります。

この後で通知をタップすると、アプリが開き、設定したホームページに移動します。これは理想的ではないかもしれませんが、私にとってはうまくいきます。onstart と onresume を追加して、iOS または Android のアプリ (HTML/JS) が FaceBook アプリと同じ方法で新しいメッセージを確認できるようにしました。

于 2013-05-28T15:49:44.190 に答える