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 コントロール パネルにアプリが登録済みデバイスとして表示されません。
何か案は?