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