PushPlugin の実装に成功し、アプリがフォアグラウンドにある場合を除き、すべての状態でプッシュ通知をトリガーしています。私が使用しているコードは次のとおりです。
function onNotification(e)
{
$("#app-status-ul").append('<li>EVENT -> RECEIVED: ' + e.event + '</li>');
switch(e.event)
{
case 'registered':
if (e.regid.length > 0) {
$("#app-status-ul").append('<li>REGISTERED -> REGID: ' + e.regid + '</li>');
console.log("RegID = " + e.regid);
}
break;
case 'message':
//if this flag is set, this notification happened while we were in the foreground.
//you might want to play a sound to get the user's attention, throw up a dialog etc.
if(e.foreground){
$("#app-status-ul").append('<li>--INLINE NOTIFICATION--' + '</li>');
//if the notification contains a soundname, play it.
//navigator.notification.alert('--INLINE NOTIFICATION--');
alert("You have a new alert!: " + e.payload.message);
var my_media = new Media (../homebound.wav);
my_media.play();
} else {
//otherwise we were launched because the user touched the notification in the notification tray.
if (e.coldstart)
{
navigator.notification.alert('--COLDSTART NOTIFICATION--');
}
else
{
navigator.notification.alert('--BACKGROUND NOTIFICATION--')
}
}
$("#app-status-ul").append('<li>MESSAGE -> MSG ' + e.payload.message + '</li>');
$("#app-status-ul").append('<li>MESSAGE -> MSGCNT: ' + e.payload.msgcnt + '</li>')
$status.append('<li>MESSAGE -> TIME: ' + e.payload.timeStamp + '</li>');
break;
case 'error':
$("#app-status-ul").append('<li>ERROR -> MSG: ' + e.msg + '</li>');
break;
default:
$("#app-status-ul").append('<li>EVENT -> Unknown, an event was received and we do not know what it is</li>');
break;
}
}
私は周りを見回しましたが、この問題について何も見つかりませんでした。修正は簡単なはずですが、このプラグインの経験がないため、私をほのめかしています. 誰かがこの問題を抱えていて、問題がどこにあるのか教えてください。事前に感謝します。
編集: USB デバッグを使用してアプリをデバッグしていて、アプリがアラートを受信していることがわかりましたが、何もトリガーしていません。「if(e.foreground){alert("You have新しい通知を受け取りました: " + e.payload.message);" 問題は明らかにifステートメントの周りにありますが、私はそれを理解できません。
編集 2 : ユーザー Hana Le のコメントに応答するように質問を更新しました。警告エラーが表示されます:「processMessage が失敗しました: エラー: ReferenceError: onNotification が定義されていません」
これを機能させるためにどこで定義する必要がありますか? また、アプリがバックグラウンドで実行されているときとまったく実行されていないときに通知を受信してトリガーするのはなぜですか?