기본 인증을 사용하는 서버로 인증하는 앱을 만들었습니다.Android WebView clear 기본 인증 자격
이-
사용자는 사용자들이 종료해야 잘못된 자격 증명에 입력하면 프로그램
- 을 종료하지 않고 로그 아웃 할 수
- 를 다시 입력 : 이것이 내가이 해결되지 않은 문제를 의미하므로 그러나 나는 자격 증명을 지울 수 없습니다 프로그램
나는 내 자신의 많은 다른 구현을 시도하고 많은이 웹 사이트에서 권장합니다. 나는 freenode에 # android-dev를 사용하지 않고 캠프했습니다. 그래서 이것이 나의 마지막 옵션입니다.
다음은 웹보기 내 예제 코드입니다 (나는 몇 가지 물건을 촬영했지만, 기본 코드는 본질적으로 동일) :
wv = new WebView(getBaseContext());
wv.setWebViewClient(new WebViewClient() {
boolean error = false;
int count = 0;
int checked = 0;
@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
count++;
if (count >= 3) {
Toast.makeText(getBaseContext(), "Login Failed. Please Try Again.", Toast.LENGTH_LONG).show();
} else {
handler.proceed(getUser(), getPass());
}// end else
}// end onReceivedHttpAuthRequest
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
}// onPageStarted
// on success switch activities
@Override
public void onPageFinished(WebView view, String url) {
if (view.getTitle().equalsIgnoreCase("fooTitle")) {
// switch activities
Intent fooActivity = new Intent(getBaseContext(), fooActivity.class);
startActivity(fooActivity);
} else {
//failed
}// end else
}// end onPageFinished
});// end setWebViewCleint
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl(url);
나는 그것이 onReceivedHttpAuthRequest를 실행 않습니다 실행 만 처음. 로그 아웃하고 다시 로그인하면 onPageStarted를 실행 한 다음 이전 자격 증명을 사용하여 onPageFinished를 실행합니다. 따라서 로그 아웃하고 새 사용자를 입력하면 원래 사용자와 다시 로그인합니다. 또는 잘못된 사용자 이름과 암호를 입력하면 OnPageStarted에 멈추게됩니다. onReceivedError와 http 오류를 사용해 보았습니다. 아무런 이점도 없었습니다.
다음은 logout() 메서드로 deauth하려고 시도한 코드 중 일부이며 코드의 다른 부분에도 있습니다. 나뿐만 아니라이 다양한 변화를 시도했습니다 다음 ClearCacheFolder는 여기에 게시 markjan 방법을 말한다
wv.clearCache(true);
wv.setHttpAuthUsernamePassword(host, realm, "","");
clearCacheFolder(this.getCacheDir());
clearCacheFolder(this.getExternalCacheDir());
this.getBaseContext().deleteDatabase("webview.db");
this.getBaseContext().deleteDatabase("webviewCache.db");
WebViewDatabase.getInstance(getBaseContext()).clearHttpAuthUsernamePassword();
WebViewDatabase.getInstance(getBaseContext()).clearUsernamePassword();
WebViewDatabase.getInstance(getBaseContext()).clearFormData();
WebStorage.getInstance().deleteAllData();
wv.setHttpAuthUsernamePassword(host, realm,
username, password);
: Android Webview - Completely Clear the Cache
기본 인증에서는 쿠키를 사용하지 않고 있지만 감사합니다. 나는 상관없이 그것을 시도했다. –