14

我正在爲使用HTML5和SenchaTouch的iPad編寫一個web應用程序。該應用程序使用緩存清單功能脫機。一旦它在主屏幕中添加並在沒有Safari的情況下打開,每次打開時都會自行刷新,即使只是導航到主屏幕並返回。期望的行爲是離開應用程序,做其他事情,然後回到應用程序,一切都不變。iPad主屏幕應用程序每刷新一次刷新

類似的應用程序,顯示相同的(不需要的)行爲的例子可以在這裏找到: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做過訣竅。

有沒有其他方法可以解決這個問題?緩存清單文件是否有一些祕密可以阻止我可能錯過的?

+0

+1我有同樣的問題。我一直無法找到任何解決方案。 :-( –

+1

@Gunder我在Sencha論壇上得到了類似的反饋意見,稱iOS不會以任何其他方式處理主屏幕應用程序,但可以隨時觀看回應[here](http://www.sencha.com/forum) /showthread.php?140520-iPad-Home-Screen-App-refreshes-on-every-open&p=626142#post626142) – Ryan

+0

請參閱我的答案:http://stackoverflow.com/a/40707231/473637 – Jeshurun

回答

7

我在這個印象之下,這只是在正常的Safari之外運行的「主屏幕」網絡應用程序的本質。我有一個在Safari上運行得很好的應用程序,並且保存了一些最小狀態,但是每次都會刷新非Safari瀏覽器版本。編輯:即使展示的使用緩存清單的O'Reilly示例在每次添加到主屏幕時都會重新加載。

您可能想要查看創建指向控制器/操作對的「路由」(URL片段)。看看MVC PhoneGap example(如果不使用PhoneGap,你可以滾動瀏覽所有這些東西,並實現自己的數據模型和存儲)。另請參閱此Sencha Touch MVC tutorial

此外,大部分渲染的sencha觸摸組件似乎保持活動項目更改之間的狀態。例如。我有一個包含所有子面板的主TabPanel。在主TabPanel的TabBar上的選項卡之間切換時,每個子面板都會保持其渲染效果,除非我設置了偵聽器或控制器操作來執行其他操作。

希望這會有所幫助。