GCM registrationId在phonegap推送插件没有收到

几天前我在使用phonegap push插件的时候遇到了APNS令牌而不是GCM令牌的问题 。

那么,我改变了设置,我已经把发件人ID在[ios]块,重新编译应用程序。 现在,我根本就没有在iphone上得到任何regustrationId。 它仍然在Android上正常工作。 谁能告诉我什么可以是一个问题?

这里是插件的设置:

var push = PushNotification.init({ android: { senderID: "8225....8910" }, ios: { senderID: "8225....8910", alert: "true", badge: "true", sound: "false" }, windows: {} }); 

而这个事件从未被称为:

  push.on('registration', function(data) { $.ajax({ url: '/authentication/ajax-register-gcm-token/', data: {token: data.registrationId}, success: function (json) { alert('Phone registered' + data.registrationId); } }); }); 

您用来初始化推送通知插件对象的代码是错误的。 它应该如下:

 var push = PushNotification.init({ android: { senderID: "XXXXXXXXXXXX", }, ios: { alert: "true", badge: "true", sound: "true", } }); push.on('registration', function(data) { console.log(data.registrationId); registerDeviceToken(data.registrationId); }); push.on('notification', function(data) { console.log("notification event"); alert(JSON.stringify(data)); }); push.on('error', function(e) { console.log("push error"); alert(JSON.stringify(e)); }); function registerDeviceToken(deviceToken){ //Register the registrationId or deviceToken to your server as per the webservice type and parameters configuration set //From your code snippet above $.ajax({ url: '/authentication/ajax-register-gcm-token/', data: {token: data.registrationId}, success: function (json) { alert('Phone registered' + data.registrationId); } }); } 

官方链接中也没有提到SenderID 。 确保您在项目的Capabilities部分下打开了推送通知服务,并且您已经在服务器端代码中input了正确的开发生产 APNS p12文件及其相应的密码。 因此,如果您正在使用开发概要文件运行应用程序,那么应该在开发p12文件环境中发送推送通知,以便在您的iOS设备上接收。 要设置开发和生产APNS p12证书,请参阅此链接: APNS设置