如何阻止Cordova应用关闭后cordova-plugin-local-notifications触发通知?
解决方案
要避免应用关闭后触发本地通知,你需要通过监听Cordova应用的生命周期事件,动态安排和取消通知——只有当应用进入后台时才创建通知,回到前台或启动时立即取消未触发的通知。
具体实现代码
document.addEventListener('deviceready', function() { // 应用启动时,先清理可能残留的未触发通知 cordova.plugins.notification.local.cancel(1); // 监听应用进入后台事件 document.addEventListener('pause', function() { // 进入后台后,安排10秒后触发的通知 cordova.plugins.notification.local.schedule({ id: 1, title: "Test", text: "Test Message.", trigger: {unit:"second", in:10} }); }); // 监听应用回到前台事件 document.addEventListener('resume', function() { // 回到前台立即取消该通知,避免触发 cordova.plugins.notification.local.cancel(1); }); });
逻辑说明
- 启动清理:应用每次启动时取消ID为1的通知,防止上次关闭前安排的通知残留触发。
- 后台触发通知:只有当应用进入后台(
pause事件)时,才创建10秒后触发的通知。 - 前台取消通知:应用回到前台(
resume事件)时立即取消通知,避免在前台弹出。
原代码会在应用关闭后触发的原因是:本地通知由iOS系统调度,一旦安排就会独立于应用运行状态执行,必须通过生命周期事件主动管理通知的创建与取消。
内容的提问来源于stack exchange,提问作者unn
相关产品推荐
相关产品推荐

