Phonegap导航和会话维护

时间:2013-01-26 18:44:20

标签: android session cordova

我正在尝试将网站转换为phonegap Android应用程序。 Web服务器将客户端上的会话ID设置为cookie。必须为整个会话维护此会话ID。

当我从一个页面移动到另一个页面时(第二个页面是应用程序中的本地html文件),使用href,或window.location或navigator.app.loadUrl,它会在浏览器中加载第二页,并且cookie被破坏,所以我无法从第二页发出有效的ajax请求。

我不希望将所有页面放在一个单独的html文件中(比如jquery mobile)。 鉴于我有单独的html文件,如何在它们之间导航,以便第二页加载在同一webview中(以便保留cookie),而不是在浏览器中。我必须为它创建另一个活动吗?

除了上面提到的那些之外,在手机屏幕中还有其他导航方式吗?或者,保持同一webview的唯一方法是使用ajax动态加载页面并用它们替换现有页面?

另一种可能性是我可以从响应中解析会话ID,将其存储在本地存储中并附加每个请求。但是这个cookie是HTTP只读,所以我无法使用javascript读取它

1 个答案:

答案 0 :(得分:1)

Backbone.js是一个很棒的分页路由功能工具,哈希会改变,但是你的js对象会保持不变,因为页面没有刷新,试试吧。

我认为它更好地使用localStorage而不是cookie,它更容易,并且会从你的页面转到另一个。

注意,即使用户已关闭,localStorage仍会保留在设备上并重新打开您的应用。

用法:

localStorage.setItem("foo","bar");
console.log(localStorage.getItem("foo")); //Output: bar