首页 文章

Android WebViewClient问题

提问于
浏览
1

我已经定义了一个扩展WebViewClient并将我的WebView客户端设置为该类实例的私有类(webView01.setWebViewClient(new Callback());) .

类定义如下:

private class Callback extends WebViewClient {
    public void onLoadResource (WebView view, String url) {
    }
    public void onPageStarted (WebView view, String url, Bitmap favicon) {
    }
    public void onPageFinished (WebView view, String url) {
        Animation anim = AnimationUtils.loadAnimation(MyNews.this, R.anim.webviewanim);
        view.startAnimation(anim);
    }
    public void onReceivedError (WebView view, int errorCode, String description, String failingUrl) {
    }   
    public boolean shouldOverrideUrlLoading (WebView view, String url) {
        Log.e("loading url", url);
        return false;
    }
}

我的问题是onPageFinished绝对被调用,但是永远不会调用shouldOverrideUrlLoading .

我在这做错了什么?

2010年6月13日

更多信息 .

我正在从字符串加载初始页面(webView01.loadDataWithBaseURL(“fake:// fake”,myHTML,“text / html”,“UTF-8”,null);) .

页面加载(并且有多次调用onLoadResource),并且在页面加载完成时调用onPageFinished .

当用户点击页面中的Anchor链接时,不是调用shouldOverrideUrlLoading,而是调用onLoadResource .

当用户点击链接时,我需要调用完整的Web浏览器,但我永远不会有机会覆盖网址加载 .

1 回答

  • 1

    从我在webview中的特色到现在,当你调用webview.load(“website”)时,不会调用shouldOverrideUrlLoading(),但是如果这个网站有重定向到另一个它可以工作 . 因此,当您调用webview.load(“website”)时(例如调用写入日志Log.e(“loading url”,url)的函数),你可以做你想要做的事情,因为你已经知道了url和需要做什么,shouldOverrideUrlLoading()只拦截webview自己发送的请求 .

    希望我有所帮助 .

相关问题