簡短版本:我有一個WebBrowser控件託管在Windows Phone 8應用程序中。如何從JavaScript存儲值,以便它們在用戶關閉並重新打開我的應用程序時持續存在?有沒有辦法在Windows Phone上的WebBrowser實例間保存Cookie或HTML5 localStorage?
龍版本:
我開發具有這樣的生活我的應用程序的整個生命單MainPage.xaml中頁面託管一個WebBrowser控件在Windows Phone 8的應用程序。在Visual Studio 2012中創建項目時,我使用「Windows Phone HTML5應用程序」項目類型創建了應用程序。我的應用程序的99%託管在Web頁面中(在互聯網上,未存儲在電話中),我將WebBrowser去應用程序啓動時。在我的應用程序的網頁中,我試圖跨頁面和跨會話保存數據。例如,一旦用戶登錄一次,我想將它保存在手機中,以便下次啓動應用程序時不必再次登錄。
Cookies和HTML5本地存儲(通過window.localStorage.setItem和getItem)在應用程序運行時可以在應用程序中的頁面之間共享數據,並且即使切換出應用程序(通過Windows手機「硬按鈕「),然後返回。但是,如果用戶通過按下」後退「按鈕退出應用程序,則下次啓動應用程序時,所有localStorage和cookie似乎都消失了。
這是預期的行爲?我想我不確定WebBrowser會在哪裏存儲數據(獨立存儲?或者,如果使用Internet Explorer訪問網站,它可能存儲在同一個地方)。在任何情況下,如果沒有「修復」這個,任何人都可以提供我自己的存儲機制的最佳方式,以便我可以讓我的JavaScript代碼在我的應用程序的實例運行時保持值?我很高興能夠使用應用程序的隔離存儲,只要我知道使用JavaScript獲取和檢索值的方法。謝謝。
事實證明,WebBrowser控件**不會**正確存儲其應用程序實例之間的狀態。由於我在調用ClearCache()作爲應用程序的刷新按鈕的一部分(因爲沒有調用ClearCache(),WebBrowser會刷新頁面,但不會重新下載內容),導致我自己不知道該問題。事實證明,調用ClearCache()也會刪除cookie,所以只要我停止調用ClearCache(),一切都開始正常工作。保羅的解決方法可能會起作用,但在這種情況下,我並不需要它。 –