3

Phonegap を使用して Android にプッシュ通知を実装したいと考えています。https://github.com/marknutter/GCM-Cordovaを使用してアプリを正常に作成しました。

https://code.google.com/apis/console/を使用してアプリ ID と送信者 ID も作成しました。

これらのキーをプロジェクトのどこに配置すればよいか、誰か提案できますか?

4

3 に答える 3

0

ここでGCM ドキュメントを確認してください。コード スニペットは次のとおりです (ドキュメントの元の例から少し変更しました)。

public class GCMIntentService extends GCMBaseIntentService {

private static final String SENDER_ID = ""; // Your project ID from the API Console

public GCMIntentService() {
    super(SENDER_ID);
}

@Override
public void onCreate() {
    super.onCreate();
    GCMRegistrar.checkDevice(this);
    GCMRegistrar.checkManifest(this);
    final String regId = GCMRegistrar.getRegistrationId(this);
    if (regId.equals("")) {
        GCMRegistrar.register(this, SENDER_ID);
    } else {
        Log.v(TAG, "Already registered");
    }
}

@Override
protected void onError(Context context, String error) {     
}

@Override
protected void onMessage(Context context, Intent message) {
         //String value = message.getExtras().getString("message");
}

@Override
protected void onRegistered(Context context, String resId) {
        // You should save the resId to use it when sending a message from your server 
}

@Override
protected void onUnregistered(Context arg0, String msg) {       
        // Delete the resId from your server
}

}

テストするには、最初に上記のサービスを呼び出して、デバイスを GCM サービスに登録する必要があります (そして、メッセージの送信時に使用する登録 ID を取得します)。次のようなことができます。

Intent registrationIntent = new Intent(
            "com.google.android.c2dm.intent.REGISTER");
registrationIntent.putExtra("app",
            PendingIntent.getBroadcast(context, 0, new Intent(), 0));
// registrationIntent.putExtra("sender", "Your sender id"); // Better than keep the sender id hard coded in the service
context.startService(registrationIntent);

メッセージを送信するには、以下のような単純な Java アプリケーションを使用できます (他の言語からも同様に実行できます)。

public static void sendMessage(String msg) throws IOException {
    String myApiKey = "Your Browser API Key";
    String regId = "Registeration id"; // the value you received in
                                        // onRegistered() in the above
                                        // onRegistered class
    Sender sender = new Sender(myApiKey);
    Message message = new Message.Builder().addData("message", msg).build();

    Result result = sender.send(message, regId, 5); // 5 is the maximum number of trials to deliver your message

    if (result.getMessageId() != null) {
        System.out.println("Message sent");
        String canonicalRegId = result.getCanonicalRegistrationId();

        if (canonicalRegId != null) {
            // This means that the registration id got updated, so use the new one for future messages
            System.out.println("canonicalRegId: " + canonicalRegId);
        }
    } else {
        System.out.println("error: " + result.getErrorCodeName());
    }
}
于 2012-11-28T07:42:05.540 に答える
0

プラグインを使用する

cordova plugin add phonegap-plugin-push --variable SENDER_ID="XXXXXXX"

xxxxxx を送信者 ID に置き換えます。送信者 ID は、Google コンソールのプロジェクト ID/プロジェクト番号です。

JavaScript に登録用の次のコードを追加します。

    var push = PushNotification.init({
android: {
    senderID: "XXXXXXXX" //add your sender id here
},
ios: {
    alert: "true",
    badge: "true",
    sound: "true"
},
windows: {}
});

push.on('registration', function(data) {   
    consol.log(data.registrationId);  //this function give registration id from the GCM server if you dont want to see it please comment it
    document.getElementById("gcm_id").value= data.registrationId; //showing registration id in our app. If it shows our registration process is suscess
    //$("#gcm_id").val(data.registrationId);  if you are using jquery
});

コルドバでプッシュ通知を実装する方法の詳細を知りたい場合は、次のリンクを参照してください。

http://phonegaptut.com/2016/05/31/how-to-send-push-notifications-in-phonegap-application/

于 2016-06-15T16:43:31.690 に答える
0

プラグインも使っています。

アプリ ID についてはわかりませんが、登録用の関数で渡す送信 ID は次のとおりです。

GCM.register(STRING_YOUR_SENDER_ID, "GCM_Event", GCM_Success, GCM_Fail );
于 2012-11-28T07:07:35.230 に答える