2

作品:

mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl("file:///android_asset/www/css-js/app.css");
        return true;
    }
});

動作しません:

mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl("http://yahoo.com");
        return true;
    }
});
4

1 に答える 1

2

問題は、無限ループが作成されていることです。毎回新しい loadUrl を再オーバーライドします。たとえば、これは問題なく動作します。

public boolean shouldOverrideUrlLoading(WebView view, String url) 
{
    if(!url.toLowerCase().contains("yahoo.com"))
    {
        view.loadUrl("http://yahoo.com");
        return true;
    }
    return false;
}

if(!url.equals(lastOverrideUrl))URL が自動的に「http://yahoo.com」から「http://www.yahoo.com」に変更されるため、最後の上書き URL を保存して比較するだけでは、この場合 (および他の多くの場合) は機能しないことに注意してください。 /」。

于 2011-05-25T01:33:48.263 に答える