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 并进行比较是行不通的,因为 URL 会自动从“http://yahoo.com”更改为“http://www.yahoo.com” /”。

于 2011-05-25T01:33:48.263 回答