显示推送通知只有当应用程序不运行在cordova android



我有一个与GCM集成的推送通知,它工作良好。每当推送通知到来时,当用户在应用程序之外时,它就会重定向到特定的页面。但是无论何时用户在应用程序中,当通知到来时,它也会重定向到特定的页面。所以我不想重定向到特定的页面,当用户在。请帮帮我……

这是我的代码…对于推送通知

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" });		// required!
        }
        //else {
        //    pushNotification.register(tokenHandler, errorHandler, { "badge": "true", "sound": "true", "alert": "true", "ecb": "onNotificationAPN" });	// required!
        //}
    }
    catch (err) {
        txt = "There was an error on this page.nn";
        txt += "Error description: " + err.message + "nn";
        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 {	
                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");
    }
}

你只需要传递onResume()函数在if (e.o hpt)语句的else块中** inside **onNotification(e) function

相关内容

  • 没有找到相关文章

最新更新