WebView가 포함 된 앱을 쓰고 있습니다. 내 앱에서 보여 주려고하는 콘텐츠가 오프라인이거나 다른 이유로 연결할 수없는 경우에 대비하여 "페이지를 찾을 수 없음"이라는 메시지를 처리하는 몇 가지 기능을 추가하려고합니다. onReceivedError()를 사용해 보았지만 아무 소용이 없습니다. 아마도 내 구문이 틀린 경우가 아니라면 오류가 표시되지 않습니다. 누군가 도울 수 있습니까?webview에서 "페이지를 찾을 수 없음"오류를 가로채는 방법은 무엇입니까?
코드 : 당신이 URL을로드하기 전에
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.somesite.net");
mWebView.setWebViewClient(new HelloWebViewClient());
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.i("WEB_VIEW_TEST", "error code:" + errorCode);
super.onReceivedError(view, errorCode, description, failingUrl);
//TO DO - do something else in here if the site is down
}
});
}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
"onReceivedError()를 사용했지만 사용하지 않으려했습니다."라고 정의하십시오. – CommonsWare
@CommonsWare 내 주석이있는 "// TO DO"행을 볼 수있는 코드 샘플에서 토스트 메시지를 사용하려고 시도했으며 mWebView.loadUrl()을 사용하여 대체 URL로 보냈습니다. 코드가 오류없이 실행되지만 토스트 메시지 나 리디렉션 된 URL 대신 "페이지를 찾을 수 없음"이 표시됩니다. –
두 개의 'WebViewClient' 객체를 설정하는 것이 문제 일 수 있습니다. 그렇지 않으면, AFAIK,'onReceivedError()'가 작동해야합니다. – CommonsWare