You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止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);
    });
});

逻辑说明

  1. 启动清理:应用每次启动时取消ID为1的通知,防止上次关闭前安排的通知残留触发。
  2. 后台触发通知:只有当应用进入后台(pause事件)时,才创建10秒后触发的通知。
  3. 前台取消通知:应用回到前台(resume事件)时立即取消通知,避免在前台弹出。

原代码会在应用关闭后触发的原因是:本地通知由iOS系统调度,一旦安排就会独立于应用运行状态执行,必须通过生命周期事件主动管理通知的创建与取消。

内容的提问来源于stack exchange,提问作者unn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:35:26