2016-06-15 5 views
0

Ich versuche, die Devuice fr Push-Benachrichtigung mit dem Phonegap-Plugin zu registrieren. In der Erfolgsaktion des AJAX rufe ich die Registrierungsaktion auf, aber die Registrierungs-ID wird nicht angezeigt. kann es jemand herausfinden.Ich möchte die Push-Benachrichtigung für registrierte Mitglied

hier die 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 
     ); 
    }); 
} 
}; 

Ich nenne die app.setupPush(); innerhalb der Ajax-Erfolg Handler

hier die 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(); 
    } 
}); 
}); 

Antwort

0

den Registrierungscode in onDeviceReady function.Registration ID gleiche sein wird versuchen, bis Sie die App deinstallieren.

In HTML:

<body onload="onLoad()"> 

In Script:

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 
     ); 
    }); 
} 
+0

ich möchte nur Benachrichtigung für registrierte Mitglieder senden. Wie kann ich es überprüfen –

+0

senden Sie die Registrierungs-ID innerhalb der Login-Anfrage zusammen mit anderen Parametern und speichern Sie es in der Datenbank zusammen mit den Benutzerinformationen.So könnten Sie nur diejenigen Benutzer verfolgen, die in Ihrer Datenbank aktiv sind. – Abhijeet

Verwandte Themen