IOS Cordova推送插件 - Coldstart崩溃应用程序

时间:2015-09-08 10:42:21

标签: javascript ios cordova

我使用的是Cordova Push Plugin:http://ngcordova.com/docs/plugins/pushNotifications/

这在Android平台上运行良好。但是,对于IOS,我面临以下问题: 我根据文档注册了'$ cordovaPush:notificationReceived'事件的监听器,并提供了与上面链接中的文档中给出的相同的实现(为了方便起见,下面给出):

$rootScope.$on('$cordovaPush:notificationReceived', function(event, notification) {
  if (notification.alert) {
    navigator.notification.alert(notification.alert);
  }

  if (notification.sound) {
    var snd = new Media(event.sound);
    snd.play();
  }

  if (notification.badge) {
    $cordovaPush.setBadgeNumber(notification.badge).then(function(result) {
      // Success!
    }, function(err) {
      // An error occurred. Show a message to the user
    });
  }
});

有三种情况: 1.应用程序正在前台运行。在这种情况下,即使通知到达(由日志语句确认),设备上也不会发生可见操作。 我希望下面两个语句可以执行,但它们不会。

navigator.notification.alert(notification.alert);
snd.play();
  1. App正在后台运行。在这种情况下,语句似乎按照预期的行为执行。

  2. 应用程序根本没有运行(冷启动)。在这种情况下,播放通知和声音,但是当用户点击通知时,应用程序会打开并挂起/崩溃。

  3. 以前有人遇到过这些问题吗?解决这些问题的最佳方法是什么?这仅适用于IOS。

2 个答案:

答案 0 :(得分:0)

您使用的插件已弃用。

我之前也使用过它,但有很多问题。

我建议使用插件:phonegap-plugin-push

易于安装并将解决您的问题

答案 1 :(得分:0)

如@Nechemya Kanelsky所述,使用较新版本的推送插件,将处理方案1和2。但是,对于该插件,第3个问题仍然存在,如上所述here

您可以使用第3期修复,提及here