0

PushWhooshのドキュメントによると:

http://www.pushwoosh.com/programming-push-notification/phonegap-build-push-plugin-integration/

Adobe のビルド クラウド サービスを使用して、PhoneGap アプリをビルドできるはずです。ドキュメントの指示に従いましたが、アプリを PushWhoosh サービスに登録できません (つまり、デバイス トークンを送信していません)。

問題は、プラグインの登録に関係していると思いますconfig.xml。Adobe Build docs によると、サポートされている唯一のプッシュ プラグインは「GenericPush」であり、config.xml次のようにファイルに追加しました。

また、pushwhoosh.com ドメインをホワイトリストに登録しました。

私の index.html ファイルには、デバイスの準備ができたときに呼び出される関数 initPushwhoosh があります。

function initPushwoosh() {
        try {
            var pushNotification;
            pushNotification = window.plugins.pushNotification;

            if (device.platform == 'android' || device.platform == 'Android') {
                pushNotification.register(successHandler, errorHandler, { "senderID": "replace_with_sender_id", "ecb": "onNotificationGCM" });
            }
            else {
                pushNotification.register(tokenHandler, errorHandler, { "badge": "true", "sound": "true", "alert": "true", "ecb": "onNotificationAPN" });
            }
        }
        catch (err) {
            alert(err.message + "\n\n" + err.name);
        }

    }

そして、私のtokenHandler関数(私はiOS用に構築しています)は次のようになります:

function tokenHandler(result) {
        // Your iOS push server needs to know the token before it can push to this device
        // here is where you might want to send it the token for later use.
        PushWoosh.appCode = "E0313-D27FA";
        PushWoosh.register(result, function (data) {
            alert("PushWoosh register success: " + JSON.stringify(data));
        }, function (errorregistration) {
            alert("Couldn't register with PushWoosh" + errorregistration);
        });
    }

デバッグを通じて、「pushNotification.register」関数が呼び出されないように見え、try/catch ステートメントにエラー メッセージが表示されません。その機能は次のとおりです。

// Call this to register for push notifications. Content of [options] depends on whether we are working with APNS (iOS) or GCM (Android)
PushNotification.prototype.register = function (successCallback, errorCallback, options) {
alert("about to register");
if (errorCallback == null) { errorCallback = function () { } }

if (typeof errorCallback != "function") {
    alert("PushNotification.register failure: failure parameter not a function");
    return;
}

if (typeof successCallback != "function") {
    alert("PushNotification.register failure: success callback parameter must be a function");
    return;
}

cordova.exec(successCallback, errorCallback, "GenericPush", "register", [options]);

};

私の考えでは、 ;のプラグイン宣言 ( <gap:plugin name="GenericPush" />)と関係があると思います。config.xml私はそれを次のように変更しようとしました(私が見つけた他のサンプルコードに基づいて):

<gap:plugin name="PushPlugin"/>

しかし、それもうまくいきませんでした。注:これを行ったとき、変更を試みました:

cordova.exec(successCallback, errorCallback, "GenericPush", "register", [options]);

cordova.exec(successCallback, errorCallback, "PushPlugin", "register", [options]);

完全なコードは次の場所にあります。

https://github.com/appburnr/PushWhooshTest

PushWhoosh AppID が正しいことを 3 回確認しましたが、PushWhoosh コントロール パネルにアプリが登録済みデバイスとして表示されません。

何か案は?

4

3 に答える 3

3

このコードは正しいですか?

pushNotification.register(successHandler, errorHandler, { "senderID": " replace_with_sender_id ", "ecb": "onNotificationGCM" });

GCM のプロジェクト ID ではないでしょうか? デバイスがプッシュ通知に登録されない理由を説明している可能性があります。

于 2013-05-31T13:03:16.890 に答える
1

私はPushWooshに精通していませんが、ビルドでこれを達成する方法についてのガイドがあります: http://www.pushwoosh.com/programming-push-notification/phonegap-build-push-plugin-integration/

各手順を実行しましたか?

于 2013-05-30T22:25:32.543 に答える