2012-01-12 84 views
4

我們在Android中包裝了一個帶有Webview控件的jQuery手機應用程序。 jQuery移動應用程序有一個登錄頁面。我們希望允許用戶保存他們的登錄信息。在Android/jQuery Mobile App中保存憑證

訣竅是客戶會更喜歡我們不使用cookies來這樣做。

解決/問題1:

我們已經想過可能創建一個呼叫的驗證服務和存儲令牌一個Android的登錄界面。令牌然後通過url屬性中的查詢字符串傳遞給webview。然後jQuery移動應用程序可以從查詢字符串中獲取令牌並對其進行驗證,從而允許繞過移動應用程序的登錄屏幕。

然而,問題是...當用戶通過jQuery移動應用程序註銷時會發生什麼?移動應用程序如何告訴Android包裝器刪除令牌?

解決方案#2,但同樣的問題

同樣採用Android登錄屏幕,但而不是通過查詢字符串PARAM通過它,可以使用在Android端的JavaScript,遍歷網頁視圖DOM,並在用戶名和密碼填寫在jQuery手機登錄屏幕上。如果您在啓動應用程序時在Android端存在該令牌,則繞過Android登錄屏幕並自動填寫用戶憑據。

儘管如此,用戶仍然有手動註銷的問題。

我們是不是根本就沒有考慮過這種正確的方法?

想法?

+0

不能在本地存儲憑據? – ghostCoder 2012-01-13 06:25:11

+0

看起來我應該可以使用Frenkenstain的答案,但只是在本地存儲它們並不能解決註銷問題。 – 2012-01-13 20:07:38

回答

3

您可以使用您的webviews localstorage。您還需要啓用它在你使用的WebView WebViewSettings類:

WebSettings settings = webview.getSettings(); 
settings.setDomStorageEnabled(true); 

現在,你應該能夠在支持它的任何其他瀏覽器的JavaScript訪問localStorage的,如:

window.localStorage 
// Set value 
window.localStorage.setItem("username", "XXX"); 
// getting the value 
var username = window.localStorage.getItem("username"); 

方案2: 爲您的應用程序創建一個JavaScript界面​​。這會讓你創建並調用一個在你的Android應用程序中觸發java代碼的javascript函數。此主題描述如下:http://developer.android.com/guide/webapps/webview.html在「將JavaScript代碼綁定到Android代碼」下

+0

本地存儲是要走的路。謝謝! – 2012-01-19 17:21:06