侦听器 '$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' 正在工作的主要内容,如果未能解决你的问题,请参考以下文章
使用cordova本地通知和离子设置重复间隔的特定数据和时间