【问题标题】:What event fires when a WebKit WebApp is "terminated"当 WebKit WebApp 被“终止”时会触发什么事件
【发布时间】:2011-05-23 01:16:44
【问题描述】:

我正在开发适用于 iOS 的 Web 应用程序,并且正在使用 DOMApplicationCache。我知道 Web Apps 不能在后台运行,但我仍然想模拟当用户切换到另一个应用程序并稍后返回 Web 应用程序时应用程序的恢复。

为了做到这一点,我至少需要记录 Web 应用程序何时终止/卸载。但是 window.unload 似乎没有触发。

有人知道如何捕获正在运行的 WebApp 的终止吗?

PS:关于一个相关问题,当 apple-mobile-web-app-capable 为 yes 时,console.log 会去哪里?

【问题讨论】:

    标签: javascript web-applications mobile-safari iphone-standalone-web-app


    【解决方案1】:

    我有一个答案。这不是我们所希望的。

    unload from http://www.w3.org/TR/DOM-Level-2-Events/events.html的技术定义是:

    当 DOM 发生 unload 事件时 实现从 窗户或框架。本次活动有效 用于 BODY 和 FRAMESET 元素。

    我还收到了 Apple 一些知情人士的回复:“很遗憾,我无法找到在单击 Home 按钮时触发的事件!我认为最合适的事件可能是 pagehide事件。当您切换到“选项卡”视图以打开新页面时,此事件实际上会在 iOS 上的 Safari 中触发,但在您单击主屏幕图标时不会触发:-("

    【讨论】:

    • 感谢您抽出宝贵时间回复。那么判断一个webapp是否已经“恢复”的唯一方法就是比较本地存储的心跳?
    • 以防万一有人不明白,这就是 Jamgold 所指的“心跳”。我只发表评论以帮助他人完成任务;)stackoverflow.com/questions/4940657/…
    • 太棒了!即使在 4.3.4 中按下 homelock 按钮,pagehide 事件也会排队,但直到您重新打开 Safari(或解锁设备)才会执行它。我认为没有比这更好的了。这对我来说已经足够了。
    【解决方案2】:

    您可以使用“pageshow”事件来检测应用程序何时恢复。当用户从不同的 Safari 选项卡返回您的应用程序时,将触发此事件。当用户单击主页按钮然后通过单击 safari 按钮返回应用程序时,它也会触发

         <script>
        window.addEventListener("pageshow", function(){
            alert("page shown");
        }, false);
      </script>
    

    我已经在 iOS 模拟器上对其进行了测试,它的工作原理如上所述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-17
      • 2011-03-06
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 2011-03-21
      • 1970-01-01
      相关资源
      最近更新 更多