以下是我想要了解的:我使用webview訪問需要身份驗證的站點的功能。因此,無論何時加載該特定鏈接,都會顯示登錄頁面。是否可以以某種方式默認進行身份驗證,以便直接顯示特定功能?也許通過使用「webView.setHttpAuthUsernamePassword」(這似乎不適合我,或者我不這樣做)或通過在加載頁面之前進行POST或GET或其他可能性?從webview默認身份驗證
在登錄服務器時,應該發送給我一個cookie。
以下是我想要了解的:我使用webview訪問需要身份驗證的站點的功能。因此,無論何時加載該特定鏈接,都會顯示登錄頁面。是否可以以某種方式默認進行身份驗證,以便直接顯示特定功能?也許通過使用「webView.setHttpAuthUsernamePassword」(這似乎不適合我,或者我不這樣做)或通過在加載頁面之前進行POST或GET或其他可能性?從webview默認身份驗證
在登錄服務器時,應該發送給我一個cookie。
該方法僅適用於HTTP基本身份驗證,不適用於基於表單的登錄。
您最好的選擇是使用WebViewClient的onLoadResource方法檢測到的網頁是關於加載,然後覆蓋使用loadData與HTML/JS的一大塊的WebView中的內容的帖子到登錄形式正確的參數,然後檢測成功的cookie返回並轉發到原始URL。
根據網站的不同,您可能需要設置正確的引用標頭或CSRF標記以及其他屬性。
祝你好運。
見,你可以做任務就這樣,我不知道這是否是你想要什麼:
@Override
public void onReceivedHttpAuthRequest(
WebView view,
HttpAuthHandler handler,
String host,
String realm) {
String currentUrl = yourWebView.getUrl();
if(currentUrl.equals("www.yourwebsite.com")){
handler.proceed("username","password");
}
}
感謝您的回答!雖然沒有給我太多希望。我會繼續尋找,也許還有其他一些方法。 – 2011-05-04 20:24:41
是的,基於表單的身份驗證有點麻煩:另一種方法是編寫一些java代碼(使用HTTP客戶端)登錄到服務器,提取cookie,然後將cookie放入webview的cookie管理器中(請參閱http: //developer.android.com/reference/android/webkit/CookieManager.html)。這可能會更好。 – Femi 2011-05-04 21:08:07
這實際上工作! – 2011-05-06 11:50:43