几天前我在使用phonegap推送插件时获得了issue获取APNS令牌而不是GCM令牌。
好吧,我更改了设置,我将senderID放在[ios]块中,重新编译了应用程序。现在我在Iphone上根本没有任何问题。它仍适用于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);
}
});
});
答案 0 :(得分:1)
您用于初始化推送通知插件对象的代码是错误的。它应该如下:
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: deviceToken},
success: function (json) {
alert('Phone registered' + deviceToken);
}
});
}
还有没有SenderID 提及here in official link。确保您已在项目的“功能”部分启用了“推送通知”服务,并且已在服务器端代码中添加了正确的开发和生产 APNS p12文件及其各自的密码。因此,如果您正在运行带有开发配置文件的应用程序,那么应该有开发p12文件环境发送推送通知以便在您的iOS设备上接收。要设置开发和生产APNS p12证书,请参阅以下链接:APNS setup