所以我一直在努力使推送插件(https://github.com/phonegap/phonegap-plugin-push)在iOS上工作了一段时间(我对iOS开发一无所知)。它似乎可以正确注册设备,但是当我通过推送手表发送通知时,它会毫无问题地发送给苹果,但我没有收到任何东西(Android的工作方式很有魅力)。
事实上,它可以在Android上工作,我可以向苹果发送通知,这让我认为问题出在证书上。我已经生成了应用ID并启用了推送通知,为生产和开发创建了推送证书(它们都不起作用),并为开发创建了配置文件。
在Xcode上,我已经从preferences/agent/download all下载了配置文件(这是我认为我搞砸了这个),我可以使用自动构建设置构建应用程序没有任何问题。当我在iPhone上运行应用程序时,我得到一个设备令牌,所以我知道它注册了设备。
这是我的index.js(我使用推送插件模板应用程序)
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);
},
// 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() {
console.log('Received Device Ready Event');
console.log('calling setup push');
if(device.platform == "Android"){ //Android
console.log('Android');
var pushNotification = window.plugins.pushNotification;
pushNotification.register(app.successHandler, app.errorHandler, {"senderID":"XXX","ecb":"app.onNotification"});
}
else if(device.platform == "iOS"){ //iOS
console.log('iOS');
var pushNotification = PushNotification.init({
"android": {
"senderID": "XXX"
},
"ios": {
"badge":"true",
"sound":"true",
"alert":"true",
"ecb":"onNotification"
},
"windows": {}
});
}
},
// result contains any message sent from the plugin call
successHandler: function(result) {
console.info('Callback Success! Result = '+result)
},
errorHandler:function(error) {
console.info(error);
},
onNotification:function(e) {
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
}
});
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
);
});
}};
似乎我可以发送通知,但apns不知道发送到哪里或喜欢它被发送,但我的设备无法接收它,因为没有链接到证书。
提前谢谢你。
编辑:遵循本教程中的步骤似乎已经解决了我的问题。https://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/我认为问题出在钥匙要求你写的短语上。一旦我删除了它,通知就开始出现了。
遵循本教程中的步骤似乎已经解决了我的问题。https://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/我认为问题是关键要求你写的短语。一旦我删除了它,通知就开始出现了。