短版:我在 Windows Phone 8 应用程序中托管了一个 WebBrowser 控件。如何存储来自 javascript 的值,以便它们在用户关闭和重新打开我的应用程序时持续存在?
长版:
我正在开发一个 Windows Phone 8 应用程序,该应用程序具有一个 WebBrowser 控件,该控件托管在一个 MainPage.xaml 页面中,该页面在我的应用程序的整个生命周期中都存在。在 Visual Studio 2012 中创建项目时,我使用“Windows Phone HTML5 App”项目类型创建了应用程序。我的应用程序的 99% 托管在我将 WebBrowser 定向到的网页中(在 Internet 上,而不是存储在手机上)转到应用程序启动时。在我的应用程序的网页中,我试图跨页面和跨会话保留数据。例如,一旦用户登录一次,我想将其存储在手机上,这样下次他们启动应用程序时就不必再次登录。
Cookie 和 HTML5 本地存储(通过 window.localStorage.setItem 和 getItem)都可以在应用程序运行时在应用程序中的页面之间共享数据,即使您退出应用程序(通过 Windows 手机“硬按钮”)并返回。但如果用户通过按下硬“返回”按钮退出应用程序,那么下次启动应用程序时,所有 localStorage 和 cookie 似乎都消失了。
这是预期的行为吗?我想我不确定 WebBrowser 会将数据存储在哪里(隔离存储?或者如果使用 Internet Explorer 访问网站,它可能存储在同一个地方?)。无论如何,如果对此没有“修复”,任何人都可以提供我自己的存储机制的最佳方式,以便我可以让我的 javascript 代码在我的应用程序运行的实例中持久保存值?如果我知道使用 javascript 从中获取和检索值的方法,我很乐意使用应用程序的独立存储。谢谢你。