2017-04-24 16 views
1

アンドロイドでwebviewを使用してURLを読み込もうとしています。これは私のWebViewは、私がonReceivedHttpErorにブレークポイントを入れて、2「が見つかりません」エラーが発生したことがわかっアンドロイドでwebviewを読み込む際にエラーを無視/無視する方法は?

public class WebViewFragment extends Fragment { 
private static final String LOG_TAG = WebViewFragment.class.getName(); 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.web_view_fragment, container, false); 
    init(rootView); 
    return rootView; 
} 

private void init(View rootView) { 
    Bundle bundle = getArguments(); 

    ImageView backButtonIV = (ImageView) rootView.findViewById(R.id.backButtonImage); 
    backButtonIV.setOnClickListener(new PopBackStackClickListener(getActivity())); 

    String title = bundle.getString(BundleConstants.WEB_HEADER_TEXT); 
    TextView headerTextTV = (TextView) rootView.findViewById(R.id.pageTitle); 
    headerTextTV.setText(title); 

    WebView webView = (WebView) rootView.findViewById(R.id.webView); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setLoadsImagesAutomatically(true); 
    webView.setWebViewClient(new MyWebView()); 

    String urlToLoad = bundle.getString(BundleConstants.WEB_URL); 
    Log.d(LOG_TAG, "Opening url :" + urlToLoad); 
    webView.loadUrl(urlToLoad); 
} 

private class MyWebView extends WebViewClient { 
    @SuppressWarnings("deprecation") 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 

    @Override 
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { 
     super.onReceivedError(view, request, error); 
    } 

    @Override 
    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { 
     return super.shouldInterceptRequest(view, request); 
    } 

    @Override 
    public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { 
     super.onReceivedHttpError(view, request, errorResponse); 
    } 

    @TargetApi(Build.VERSION_CODES.N) 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
     view.loadUrl(request.getUrl().toString()); 
     return true; 
    } 
} 
} 

どのように見えるかです。基本的に2つの.pngファイルが見つかりません。この理由でwebviewはページの読み込みを停止します。これらのエラーを無視して処理を続けるにはどうすればよいですか?アンドロイドの外では、リンクを開こうとするとウェブページが正常にロードされ、エラーはコンソールに記録されます。しかし、ページの読み込みを妨げることはありません。どのように私はアンドロイドwebviewで同じことを達成し、ページを正常に読み込むことができますか?

答えて

0

は、単に(スーパー呼び出すことはありません)ログインしてonReceivedErrorとonReceivedHttpErrorのあなたのオーバーライドにコードを置き換えるようにしてください。

@Override 
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { 
    Log.d(LOG_TAG, "onReceivedError :" + error); 
} 

@Override 
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { 
    Log.d(LOG_TAG, "onReceivedHttpError:" + errorResponse); 
} 
+0

は私がスーパーへの呼び出しを削除: – Karu

+0

shouldInterceptRequestをオーバーライドし、スーパーを呼び出す代わりにnullを返してください。 – DKIT

0

あなたはスーパー呼び出すドント場合、それが動作するはずです、これを試してみてください。それはうまくいかなかった。まだページを読み込んでいません。
+0

これはうまくいかなかった。私はスーパーメソッドへの呼び出しをログに置き換えましたが、それでもページをロードしません。 – Karu

+0

私たちがあなたを助けることができるlogcat情報がありますか? –

+1

私はアンドロイドモニターに何のエラーもありませんでした。私は最終的にwebviewのためにこのライブラリを使用することになった。 "com.github.delight-im:Android-AdvancedWebView:v3.0.0"。私はこれを使用した後、何の問題もありませんでした。私のために働いた。 – Karu

関連する問題