侦听器 '$cordovaLocalNotification:trigger' 未触发,因为 '$cordovaLocalNotification:scheduled' 正在工作

Posted

技术标签:

【中文标题】侦听器 \'$cordovaLocalNotification:trigger\' 未触发,因为 \'$cordovaLocalNotification:scheduled\' 正在工作【英文标题】:Listener '$cordovaLocalNotification:trigger' not triggered where as '$cordovaLocalNotification:scheduled' is working侦听器 '$cordovaLocalNotification:trigger' 未触发,因为 '$cordovaLocalNotification:scheduled' 正在工作 【发布时间】:2016-09-26 07:03:10 【问题描述】:

这是带有 angularjs 的离子(非离子 v2)。 安排本地通知时,我看到“$cordovaLocalNotification:schedule”被触发,但没有“$cordovaLocalNotification:trigger”。

   $rootScope.$on('$cordovaLocalNotification:schedule',
        function (event, notification, state) 
            // ...
            alert("Local Notification scheduled");
        );

    $rootScope.$on('$cordovaLocalNotification:trigger',
        function (event, notification, state) 
            // ...
            alert("Local Notification triggered")
        );

提供以下触发通知的方法:

$rootScope.scheduleNotification = function (title,notificationMessage) 
    $cordovaLocalNotification.schedule(
      id: 1,
      title: title,
      text: notificationMessage,
      data: 
        customProperty: 'custom value'
      
    ).then(function (result) 
      // ...
    );
  ; 

所有的注入都设置好了,我想如果没有那个预定的监听器将无法工作!

【问题讨论】:

您是否有理由不将此通知安排在特定日期和时间?问题可能是由于此通知在安排后立即触发。 @Dexter:显然,我用谷歌搜索了很多(字面意思)发现随着 ios 10 的发布,通过 ngcordova 提供的插件不再起作用来触发通知,并且需要调整本身将 UserNotificaitions 导入iOS 插件代码。除了可用的志愿者之外,另一位志愿者提供了解决方法。 【参考方案1】:

谷歌搜索后发现,需要调整现有插件katzer/cordova-plugin-local-notifications 以支持iOS 10 更改推送通知和LocalNotifications 以支持新的通知中心功能。

作为临时修复,请执行以下操作:

    离子插件 rm de.appplant.cordova.plugin.local-notification 离子插件添加https://github.com/spk0611/cordova-plugin-local-notifications#9ad32cf2059cdf9a54b4930b1c58ba76ef7e3a87 转到 Xcode 并确保 XCode -> Preferences -> Locations 并检查 Command Line Tools 是否设置为 Xcode 8。(我真的不知道为什么会这样完成) 在 Xcode 中,转到目标的构建设置并确保“启用模块(C 和 Objective-C)”已打开 最后,编辑 plugin.xml(它位于添加的插件的 plugins 文件夹中)以取消注释掉 cordova-plugman 引擎的行的注释,以便应用实际访问插件。

add plugin from here

Solution Source

万岁!我得到了它的工作:-)

【讨论】:

从 Xcode 7 升级到 Xcode 8.1 后,我遇到了 Cordova 插件中断的相同问题。我迷路了,但是感谢您的帖子,我能够部署到带有 iOS 10 的 iPhone 设备,并且本地推送通知再次工作!我只需要按照您的步骤 1、2 和 5 进行操作即可。

以上是关于侦听器 '$cordovaLocalNotification:trigger' 未触发,因为 '$cordovaLocalNotification:scheduled' 正在工作的主要内容,如果未能解决你的问题,请参考以下文章

从后台安排本地通知(Ionic + ngCordova)

我无法使用 cordova 本地通知插件取消通知

是否可以使用地理位置作为条件发出通知?

使用cordova本地通知和离子设置重复间隔的特定数据和时间

Cordova Local Notification 为 iOS 和 Android 播放本地声音

Phonegap/cordova localNotifications 插件在模拟器上工作,但不在设备上