【问题标题】:Running logic upon progressive web app open在渐进式 Web 应用程序打开时运行逻辑
【发布时间】:2020-03-01 14:57:16
【问题描述】:

我有一个已安装的渐进式网络应用程序,即已通过 Firefox、Chrome 或 Safari 在手机/平板电脑上“添加到主屏幕”的网页;手头的问题与这三个问题都相关。

该应用程序依赖于每隔 5 分钟通过一段 JavaScript 在后台更新的数据,我们将其称为 updateData。在桌面浏览器中,这可以通过类似的方式正常工作

$(document).ready(function() {
    updateData();
    setInterval(updateData, 5*60*1000);
});

但是对于渐进式 Web 应用程序,这不太理想,因为用户可能会收到更新,关闭应用程序,一个小时后才再次打开它,然后必须等待五分钟才能获得下一次更新。

因此我的问题变成了:

有没有一种很好的方法来判断用户是否刚刚打开了渐进式网络应用程序,而不管它是托管在 Firefox、Chrome 还是 Safari(或其他什么东西?)之后,是否需要更新?

【问题讨论】:

    标签: javascript progressive-web-apps


    【解决方案1】:

    这将在选项卡/窗口聚焦时运行,并且当浏览器在移动设备中重新打开时运行

    $(window).on('focus', function() { updateData(); });
    

    【讨论】:

    • 谢谢,这对我有用。我注意到每次使用 Safari 时都会运行它,每次 Firefox 在加载时不会崩溃时都会运行,但对于 Chrome,它仅在最近未打开应用程序时运行;对于我的用例,这很好,因为在这种情况下,Chrome 仍然每 5 分钟运行一次 setInterval 回调。
    猜你喜欢
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多