2014-07-18 62 views
1

後先前的用戶資料我使用加載URL到我的WebView:WebViewClient負荷甚至註銷

mWebView.setWebviewClient(new WebViewClient); 

此網址加載HTTP認證頁面。用戶登錄後,其憑據將保存在SharedPreference中。此外,我在清除所有數據的地方實施了註銷功能。

同樣,當我嘗試加載url時,它不顯示登錄頁面,並自動使用先前的憑據登錄。如果我在普通瀏覽器中加載URL,則登錄頁面加載正常。只有當我應用WebViewClient時,我纔會得到上述行爲。

這裏是我的代碼: -

myWebView.getSettings().setJavaScriptEnabled(true); 

     myWebView.loadUrl(url); 
     WebViewDatabase.getInstance(Details1.this).clearHttpAuthUsernamePassword(); 
     WebViewDatabase.getInstance(Details1.this).clearUsernamePassword(); 
     WebViewDatabase.getInstance(Details1.this).clearFormData(); 


     myWebView.setWebViewClient(new WebViewClient()) 

我很迷茫,在網上搜索了一個答案,但無法找到任何東西。

回答

0

我花了太多的時間與此。沒有一種方法可行,如https://code.google.com/p/android/issues/detail?id=22272所述。

最後我在onReceivedHttpAuthRequest解決它通過設置標誌wasLoggegIn,然後當我想清楚了登錄憑證,檢查標誌:

if (wasLoggedIn) { 
    Intent i=new Intent(this,MainActivity.class); 
    i.setAction(Intent.ACTION_MAIN); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
    finish(); 
    try {startActivity(i);} 
    catch (java.lang.Exception ignore) {} 
    System.exit(0); 
} 

所以,是的,重新啓動應用程序。這是唯一的方法,至少在4.4.2上。