当前位置: 首页 > 知识库问答 >
问题:

cordova插件本地通知在应用程序被终止后单击事件

华浩壤
2023-03-14

我在这方面发现了很多老问题,但我没有找到一个明确的答案,在应用程序被终止后,让本地通知单击事件起作用。如果应用程序处于活动状态或处于后台,则通知将起作用。为了进行测试,我编写了以下代码。

app.initEvents = function() {
    "use strict" ;
    var fName = "app.initEvents():" ;
    app.consoleLog(fName, "entry") ;


    cordova.plugins.notification.local.isPresent(1, function (present) 
    {
        if (! present) {
            var d = new Date();
            d.setMinutes(d.getMinutes() + 2);
            cordova.plugins.notification.local.schedule({
                id: 1,
                title: "Test message",
                message: "Message body",
                date: d
            });
        }
    });

    cordova.plugins.notification.local.on("click", function (notification, state) {
        alert(notification.id + " was clicked -> app.Ready");
    }, this);

    var el, evt ;

    if( navigator.msPointerEnabled || !('ontouchend' in window))
        evt = "click" ;
    else
        evt = "touchend" ;

    app.hideSplashScreen() ;

    app.consoleLog(fName, "exit") ;
} ;
document.addEventListener("app.Ready", app.initEvents, false) ;

发生的情况是,通知已安排,并在2分钟后显示。如果应用程序在通知仍被触发的同时被终止,但单击事件未被处理,通知将再次安排。所以我假设通知在被点击后被清除,因为应用程序。ready事件稍后处理它无法处理click事件吗?

有没有办法让这一切顺利进行?我使用的是CLI 6.5和0.8.4版本的插件。我只测试了Android7.1.1。

共有1个答案

仉明知
2023-03-14

为确保事件侦听器将启动,您必须将其放置在设备日内,例如:

document.addEventListener('deviceready', onDeviceReady, false);

const onDeviceReady = () => {
  window.cordova.plugins.notification.local.on('click', (notification, args) => {
      alert(notification.id + " was clicked -> app.Ready");
  });
}

但是,请确保将其放置在调用deviceready之后,否则,它可能无法正常工作。

 类似资料:
  • 问题内容: 我正在iOS中制作一个应用程序,它将在计时器上发送本地通知。当应用程序处于后台状态时,它可以正常工作,但是在终止并完全关闭时,它无法工作。 无论如何,是否仍会在发生这种情况时发送本地通知? 提前致谢。 问题答案: 当然,如果您安排了本地通知,即使您终止应用程序,它也会触发。 …对我来说就像是一种魅力。

  • 我正面临一个浪费时间的问题 我正在用本地数据库构建一个应用程序。例如,我希望此应用程序每隔15分钟向用户发送一次通知,其中包含来自数据库的一些数据。我已经成功地实现了这一点,只要应用程序正在运行或未被终止,但当应用程序被终止时,用户将不再看到通知。我正在两台真正的设备上测试这个应用程序 在主要活动中,我使用上一个通知程序每15分钟显示一次:- 当我更改通知程序类代码以显示不带任何值的日志消息时,l

  • 我已经为这个问题挣扎了几天了 我有一个android应用程序,用户可以指定植物浇水的频率。我想根据植物浇水的频率发送通知。(例如,每3天发送一次通知) 我知道有很多问题可以解决这个问题,但我仍然无法让它发挥作用 我从使用报警管理器实现/启动服务开始 主要问题是,一旦我的应用程序被终止,通知将不再发送 我正在使用firebase存储所有数据 我读了一些关于firebase函数的内容,但我不知道这是否

  • 第五天。 仔细看看我在下面写的清单,它对我很有用。 设置规格: Phonegap版本:7.1.1 浏览器:chrome 电话:1加x 手机Android版:6.0.1 科尔多瓦版本8.0.0 首先测试cmd是否安装了所有组件 科尔多瓦创建通知Appcom.notification.example通知App cordova平台添加浏览器 cordova平台添加ios 科尔多瓦平台添加Android

  • 我使用Firebase控制台发送通知到我的Android设备,它的工作正常时,应用程序是在后台或前台状态。但它没有收到的通知在被杀死的状态,因为我没有附加任何数据,它不应该是一个数据通知。

  • 我设计了这个应用程序,在Android和ios中使用反应原生,并使用raact原生fcm模块从服务器推送通知。在Android中,我们只从服务器发送数据有效载荷,它是在onMessageRec的()天气应用程序是在前台或最小化(后台)或杀死,然后我可以处理数据,以显示本地通知,这是做罚款。但在IOS中,我不知道在应用程序中收到的数据有效载荷,或者如果在IOS中,我发送通知有效载荷以及/没有数据有效