当应用程序在后台打开超过 30 分钟时,Cordova 会做一些事情

Cordova do something when the app has been open in the background for more than 30 minutes

我正在使用 React 和 Cordova 构建混合应用程序。我需要在应用程序在后台关闭 30 分钟后呈现特定组件。

我有两个事件监听器

  1. "pause" 检测应用程序是否在后台打开。 这里我设置localStorage为当前date/time.

  2. "resume"当应用程序在后台打开后打开。 在这里,我获取当前时间,本地存储的时间,并检查两者之间的时间是否为 30 分钟。这就是我的问题所在,它总是 returns 错误。与 react/cordova 相比,我的问题更 javascript 相关。有人可以解释我做错了什么吗?

// when the app is open in the backgroud 
document.addEventListener("pause", () => {
    localStorage.setItem("appTimeout", Date.now());
},false);

// when you reopen the app
document.addEventListener("resume", () => {
    setTimeout(() => {
        const minutes = 1000 * 30 * 60;
        const closeTime = localStorage.getItem("appTimeout");
        if(Date.now() - Number(closeTime) >= minutes){
            //render component
        }
    }, 0);
},false);

在为此头疼了很多之后,我最终为此使用了 react-idle-timer。 https://www.npmjs.com/package/react-idle-timer