我想要注册会员的推送通知工作

I want the push notification work for registered member

我正在尝试使用 phonegap 插件为推送通知注册设备。在 AJAX 的成功操作中,我调用了注册操作,但它没有提醒注册 ID。有谁能弄明白吗

这里是index.js

// Begin boilerplate code generated with Cordova project.
var app = {
// Application Constructor
initialize: function () {
    this.bindEvents();
},
// Bind Event Listeners
//
// Bind any events that are required on startup. Common events are:
// 'load', 'deviceready', 'offline', and 'online'.
bindEvents: function () {
    document.addEventListener('deviceready', this.onDeviceReady, false);
    connectionStatus = navigator.onLine ? 'online' : 'offline';

 if(connectionStatus !="online")
 {
     //$.mobile.changePage($("#seconddiv"));
     window.location.replace("no-internet.html");
 }
},
// deviceready Event Handler
//
// The scope of 'this' is the event. In order to call the 'receivedEvent'
// function, we must explicitly call 'app.receivedEvent(...);'
onDeviceReady: function () {
},
setupPush: function() {
    console.log('calling push init');
    var push = PushNotification.init({
        "android": {
            "senderID": "xxxxxxxxx"
        },
        "ios": {
            "sound": true,
            "vibration": true,
            "badge": true
        },
        "windows": {}
    });
    console.log('after init');

    push.on('registration', function(data) {
        console.log('registration event: ' + data.registrationId);

        var oldRegId = localStorage.getItem('registrationId');
        if (oldRegId !== data.registrationId) {
            // Save new registration ID
            localStorage.setItem('registrationId', data.registrationId);
            // Post registrationId to your app server as the value has changed
        }
        alert(localStorage.getItem('registrationId'));

        var parentElement = document.getElementById('registration');
        var listeningElement = parentElement.querySelector('.waiting');
        var receivedElement = parentElement.querySelector('.received');

        listeningElement.setAttribute('style', 'display:none;');
        receivedElement.setAttribute('style', 'display:block;');
    });

    push.on('error', function(e) {
        console.log("push error = " + e.message);
    });

    push.on('notification', function(data) {
        console.log('notification event');
        navigator.notification.alert(
            data.message,         // message
            null,                 // callback
            data.title,           // title
            'Ok'                  // buttonName
        );
   });
}
};

我在 ajax 成功处理程序中调用 app.setupPush();

这里是signin.js

var KPSCtuts = KPSCtuts || {};
$("#btn-submit").click(function(){
var userName = $("#txt-username").val();
var password = $("#txt-password").val();
//alert(KPSCtuts.Settings.Url);
$("#loaderIcon").show();
$.ajax({
    type: 'POST',
    dataType: "json",
    url: KPSCtuts.Settings.Url,
    data:"username=" + userName + "&password=" + password + "&login=",
    success: function (resp) {

        if (resp.success === true) {
            // Create session. 
            var today = new Date();
            var expirationDate = new Date();
            expirationDate.setTime(today.getTime() + KPSCtuts.Settings.sessionTimeoutInMSec);
            KPSCtuts.Session.getInstance().set({
                userProfileModel: resp.userProfileModel,
                userId: resp.userId,
                userName: resp.userName,
                sessionId: resp.sessionId,
                expirationDate: expirationDate,
                keepSignedIn:$('#chck-rememberme').is(":checked")
            });
app.setupPush();
            // Go to main menu.
            window.location.replace("index.html");
            $("#loaderIcon").hide();
            return;
        } else {
            if (resp.extras.msg) {


                        $("#ctn-err").html("<p>"+resp.extras.msg+"</p>");
                        $("#dlg-invalid-credentials").show();
                        $("#ctn-err").addClass("bi-ctn-err").slideDown();
                        $("#loaderIcon").hide();

            }
        }
    },
    error: function (e) {
        //$.mobile.loading("hide");
        //console.log(e.message);
        // TODO: Use a friendlier error message below.
        $("#ctn-err").html("<p>1-Oops! KPSCtuts had a problem and could not log you on.  Please try again in a few minutes.</p>");
        $("#ctn-err").addClass("bi-ctn-err").slideDown();
        $("#loaderIcon").hide();
    }
});
});

尝试在 onDeviceReady 中输入注册码function.Registration ID 将保持不变,直到您卸载应用程序。

在HTML中:

<body onload="onLoad()">

在脚本中:

function onLoad()
    document.addEventListener("deviceready", onDeviceReady, false);
}

function onDeviceReady() {
   var push = PushNotification.init({
        "android": {
            "senderID": "xxxxxxxxx"
        },
        "ios": {
            "sound": true,
            "vibration": true,
            "badge": true
        },
        "windows": {}
    });

    push.on('registration', function(data) {
        console.log('registration event: ' + data.registrationId);

    });

    push.on('error', function(e) {
        console.log("push error = " + e.message);
    });

    push.on('notification', function(data) {
        console.log('notification event');
        navigator.notification.alert(
            data.message,         // message
            null,                 // callback
            data.title,           // title
            'Ok'                  // buttonName
        );
   });
}