phonegap-push-plugin注册事件未调用(ios)

时间:2016-06-06 16:18:16

标签: ios cordova phonegap-pushplugin

我的问题与此类似:Register event not getting called on ios #386

我的Android设备上的一切正常,但在ios上似乎会跳过注册部分(我没有错误或其他):

代码:

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

    push.on('registration', function(data) {
        console.log(data.registrationId);
    });

    push.on('notification', function(data) {
        console.log(data.message)
        // data.title,
        // data.count,
        // data.sound,
        // data.image,
        // data.additionalData
    });

    push.on('error', function(e) {
        // e.message
    });

我正在使用的一些信息:

  • cordova:5.0.0
  • 平台:android 4.0.0,ios 4.0.0

修改

我也使用这个简单的notify.js将我的通知发送到不同的设备(适用于android):

var gcm = require('node-gcm');
var message = new gcm.Message();

var registrationIds = [];

// Value the payload data to send...
message.addData('message',"Test");
message.addData('title','Hello world' );
message.addData('notId','2');
//message.addData('soundname','beep.wav');
message.collapseKey = 'demo';
//message.delayWhileIdle = true; //Default is false
//message.timeToLive = 1000;// Duration in seconds to hold in GCM and retry before timing out. Default 4 weeks (2,419,200 seconds) if not specified.

// Set up the sender with you API key
//iOS
var sender = new gcm.Sender('API Key iOS');
//Android
//var sender = new gcm.Sender('API Key android');

// Add the registration tokens of the devices you want to send to

//ios:
registrationIds.push('token ios');

//android
//registrationIds.push('token android');

// Send the message
// ... trying only once
sender.sendNoRetry(message,registrationIds, function(err, response) {
  if(err) console.error(err);
  else    console.log(response);
});

// ... or retrying
sender.send(message, registrationIds, function (err, response) {
  if(err) console.error(err);
  else    console.log(response);
});

// ... or retrying a specific number of times (10)
sender.send(message, registrationIds, 10, function (err, response) {
  if(err) console.error(err);
  else    console.log(response);
});

EDIT2

我终于收到此错误消息:

{"multicast_id":xxxxxxxxxxxxxxxxx,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"}]}

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我通过在xcode功能中启用推送通知来修复它。 确保您拥有最新版本。