几天前,在使用phonegap推送插件时,我在获取APNS令牌而不是GCM令牌时遇到了问题。
好吧,我更改了设置,我将senderID放在[ios]块中,重新编译了应用程序。现在我在iPhone上根本没有任何监管ID。它在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: deviceToken},
success: function (json) {
alert('Phone registered' + deviceToken);
}
});
}
官方链接中也没有提到发件人ID。确保已在项目的"功能"部分下打开推送通知服务,并在服务器端代码中放置了正确的开发和生产 APNS p12 文件及其各自的密码。因此,如果您正在运行带有开发配置文件的应用程序,那么应该有开发 p12 文件环境发送推送通知,以便在您的 iOS 设备上接收。要设置开发和生产 APNS p12 证书,请参阅此链接:APNS 设置