我正在使用 HTML5 和 SenchaTouch 为 iPad 编写一个网络应用程序。该应用程序使用缓存 list 来离线运行。一旦它被添加到主屏幕并在没有 Safari 的情况下打开,它会在每次打开时自行刷新,即使只是导航到主屏幕并返回。所需的行为是离开应用程序,做其他事情,然后回到应用程序,一切都保持原样。
可以在此处找到显示相同(不需要的)行为的类似应用的示例:http://ignitedmediadesign.com/WebApp/index.html
我读过使用缓存 list 应该可以在 iPhone ( http://www.stevesouders.com/blog/2011/06/28/lack-of-caching-for-iphone-home-screen-apps/ ) 上解决这个问题,但似乎没有为 iPhone 或 iPad 解决这个问题。
有没有其他方法可以解决这个问题?缓存 list 文件是否有一些 secret 可以阻止我可能错过的这种情况?
最佳答案
我的印象是这只是在普通 Safari 之外运行的“主屏幕”网络应用程序的性质。我有一个应用程序,它在 Safari 中运行得很好,保存了一些最小的状态,但爆炸的非 Safari 版本每次都会刷新。编辑:即使是展示的 O'Reilly 示例,每次添加到主屏幕时都会重新加载使用缓存 list 的示例。
您可能想要研究创建指向 Controller /操作对的“路由”(URL 片段)。查看 MVC PhoneGap example (如果不使用 PhoneGap,您可以滚动浏览所有这些内容并实现您自己的数据模型和存储)。另见此 Sencha Touch MVC tutorial .
此外,大多数渲染的 sencha 触摸组件似乎在事件项的更改之间保持状态。例如。我有一个包含所有子面板的主 TabPanel。在主 TabPanel 的 TabBar 上的选项卡之间切换时,每个子面板都会保持其呈现,除非我设置了监听器或 Controller Action 以进行其他操作。
希望这可以帮助。
关于iPad 主屏幕应用程序在每次打开时刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686654/