내가 여기에서 찾은 모든 관련 게시물을 검토했지만 여전히 작동하지 못합니다. 리디렉션 (때때로 많은 리디렉션)이있는 URL로 WebView를 열고 있는데, 실제로로드가 완료되면 (URL 리디렉션이 더 이상 끝나지 않아 완료 됨) 알고 싶습니다.WebView에서 리디렉션이 완료되면 감지하는 방법은 무엇입니까?
의견이 있으십니까?
내가 읽은 모든 게시물은 shouldOverrideUrlLoading을 무시하지만 shouldOverrideUrlLoading을 호출해도 아무런 문제가 없습니다.
내 코드 :
mWebView = (WebView) findViewById(R.id.webview);
WebSettings settings = mWebView.getSettings();
settings.setLoadWithOverviewMode(true);
settings.setJavaScriptEnabled(true);
settings.setLoadsImagesAutomatically(true);
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);
mWebView.setWebViewClient(new MyWebViewClient());
mUrl = "http://cdn.something.com/something.html";
// mUrl = "https://www.google.com";
mWebView.loadUrl(mUrl);
public class MyWebViewClient extends WebViewClient {
public MyWebViewClient() {}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.d(TAG, "WebViewClient: shouldOverrideUrlLoading");
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Log.d(TAG, "WebViewClient: onPageStarted: url: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.d(TAG, "WebViewClient: onPageFinished: url: " + url);
super.onPageFinished(view, url);
}
}
당신이 그것을 작동하게하는 두 가지 방법을 모두 오버라이드 (override) 할 필요가 당신에게 당신이 android N
에 추가 된 새로운 shouldOverrideUrlLoading
방법을 재정의
onLoadResource 메소드를 사용해 보셨습니까? –
확인 [this] (http://stackoverflow.com/questions/2659000/java-how-to-find-the-redirected-url-of-a-url) 대답 .. 당신은 URL 리디렉션이 완료되었는지 확인해야합니다. 아니면 'WebViewClient'의'onPageStarted' 메소드에 ... – ELITE
@ 555 ** 절대 소스 코드를 편집하지 마세요. "URL"은 ** 대문자로 작성되어야합니다 ** 프로그램을 중단합니다 **. 특히 프로그래밍 언어가 완벽하지 않은 경우 편집을 통해 질문을 더 이상 만들지 마십시오. * 당신은이 지역 사회에 활발히 해를 끼치고 있습니다 *. –