0
GCM과 통합 된 푸시 알림이 있습니다. 정상적으로 작동합니다. 푸시 알림이 올 때마다 사용자가 응용 프로그램 외부에있을 때 특정 페이지로 리디렉션됩니다. 그러나 사용자가 애플리케이션 내부에있을 때마다 알림이 올 때 특정 페이지를 리디렉션합니다. 그래서 내가 특정 페이지로 리디렉션하고 싶지 않아요. 여기 앱이 cordova에서 실행되지 않을 때만 푸시 알림 표시 android
는 푸시 알림의 경우 ... 내 코드입니다 ... 제발 도와주세요var pushNotification;
function onDeviceReady() {
$("#app-status-ul").append('<li>deviceready event received</li>');
document.addEventListener("backbutton", function (e) {
$("#app-status-ul").append('<li>backbutton event received</li>');
if ($.mobile.activePage.is('#indexPage')) {
e.preventDefault();
navigator.app.exitApp();
}
else {
navigator.app.backHistory();
}
}, false);
try {
pushNotification = window.plugins.pushNotification;
$("#app-status-ul").append('<li>registering ' + device.platform + '</li>');
if (device.platform == 'android' || device.platform == 'Android') {
pushNotification.register(successHandler, errorHandler, { "senderID": "XXXXXXXXX", "ecb": "onNotification" }); \t \t // required!
}
//else {
// pushNotification.register(tokenHandler, errorHandler, { "badge": "true", "sound": "true", "alert": "true", "ecb": "onNotificationAPN" }); \t // required!
//}
}
catch (err) {
txt = "There was an error on this page.\n\n";
txt += "Error description: " + err.message + "\n\n";
alert(txt);
}
}
// handle GCM notifications for Android
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>");
localStorage.setItem("REGID", e.regid);
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>');
window.localStorage.setItem("push_que", e.payload.id);
window.localStorage.setItem("recordId",e.payload.recordId);
var push_que = e.payload.id;
var soundfile = e.soundname || e.payload.sound;
var my_media = new Media("/android_asset/www/" + soundfile);
my_media.play();
}
else { \t
if (e.coldstart) {
$("#app-status-ul").append('<li>--COLDSTART NOTIFICATION--' + '</li>');
window.localStorage.setItem("push_que", e.payload.id);
window.localStorage.setItem("recordId",e.payload.recordId);
}
else
$("#app-status-ul").append('<li>--BACKGROUND NOTIFICATION--' + '</li>');
window.localStorage.setItem("push_que", e.payload.id);
window.localStorage.setItem("recordId",e.payload.recordId);
}
$("#app-status-ul").append('<li>MESSAGE -> MSG: ' + e.payload.message + '</li>');
//android only
$("#app-status-ul").append('<li>MESSAGE -> MSGCNT: ' + e.payload.msgcnt + '</li>');
//amazon-fireos only
$("#app-status-ul").append('<li>MESSAGE -> TIMESTAMP: ' + e.payload.timeStamp + '</li>');
onResume();
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;
}
pushNotify();
}
function successHandler(result) {
$("#app-status-ul").append('<li>success:' + result + '</li>');
}
function errorHandler(error) {
$("#app-status-ul").append('<li>error:' + error + '</li>');
}
특정 페이지를 리디렉션하는 데 도움이 onResume() 메소드는
function onResume() {
//toast('App resumed', 'short');
var que_push = window.localStorage.getItem("push_que");
if (que_push == "inboxDetails") {
$.mobile.changePage("#inboxDetails");
window.localStorage.removeItem("push_que");
}
if (que_push == "trackComplaintTable") {
var recordId = window.localStorage.getItem("recordId");
showtrackcomplaintdetail(recordId);
$.mobile.changePage("#trackComplaintTable");
window.localStorage.removeItem("push_que");
}
// if a number is sent open a specific news article calling a specific funcion that loads the "articles"
if (que_push != "inboxDetails" && que_push != "trackComplaintTable" && que_push != "") {
window.localStorage.removeItem("push_que");
}
}
(); –
이 함수에서 데이터베이스에 모바일 장치 키를 삽입하는 웹 서비스를 호출합니다. –
# 코드 건 pushPlugin을 사용하고 있습니다. –