3

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

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

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

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

4

2 回答 2

6

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

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

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

于 2011-12-22T15:26:58.340 回答
3

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

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

当 DOM 实现从窗口或框架中删除文档时,会发生 unload 事件。此事件对 BODY 和 FRAMESET 元素有效。

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

于 2011-02-03T18:52:17.260 回答