Phonegap插件推送注册设备,但不接收通知



所以我一直在努力使推送插件(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/我认为问题是关键要求你写的短语。一旦我删除了它,通知就开始出现了。

相关内容

  • 没有找到相关文章

最新更新