16

我正在使用 HTML5 和 SenchaTouch 为 iPad 编写一个网络应用程序。该应用程序使用缓存清单离线运行。一旦它被添加到主屏幕并在没有 Safari 的情况下打开,它会在每次打开时自行刷新,即使只是导航到主屏幕并返回。期望的行为是离开应用程序,做其他事情,然后回到应用程序,一切都保持不变。

可以在此处找到显示相同(不希望的)行为的类似应用程序的示例:http: //ignitedmediadesign.com/WebApp/index.html

我读过使用缓存清单应该可以解决 iPhone 上的这个问题(http://www.stevesouders.com/blog/2011/06/28/lack-of-caching-for-iphone-home-screen-apps / ),但似乎对 iPhone 或 iPad 都没有效果。

还有其他方法可以解决这个问题吗?缓存清单文件有什么秘密可以阻止我可能错过的吗?

4

1 回答 1

7

我的印象是,这只是在普通 Safari 之外运行的“主屏幕”网络应用程序的本质。我有一个在 Safari 中运行良好的应用程序,具有一些最小的状态保存,但爆破的非 Safari 版本每次都会刷新。编辑:即使是展示的使用缓存清单的 O'Reilly 示例,每次添加到主屏幕时都会重新加载。

您可能想研究创建指向控制器/操作对的“路由”(URL 片段)。查看MVC PhoneGap 示例(如果不使用 PhoneGap,您可以滚动浏览所有这些内容并实现您自己的数据模型和存储)。另请参阅此Sencha Touch MVC 教程

此外,大多数渲染的 sencha 触摸组件似乎在活动项目的更改之间保持状态。例如。我有一个包含所有子面板的主 TabPanel。当在主 TabPanel 的 TabBar 上的选项卡之间切换时,每个子面板都会保持其呈现,除非我设置了侦听器或控制器操作来执行其他操作。

希望这可以帮助。

于 2011-07-18T15:45:21.723 回答