我定义了一个扩展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从未被调用过。
我在这里做错了什么?
6/13/2010
更多的信息。
我从一个字符串( webView01.loadDataWithBaseURL("fake://fake",myHTML,"text/html","UTF-8",null );)加载初始页面。
页面加载(有几次对onLoadResource的调用),onPageFinished在页面加载完成时被调用。
当用户点击页面中的Anchor链接时,将调用onLoadResource,而不是调用shouldOverrideUrlLoading。
当用户点击链接时,我需要调用完整的web浏览器,但我从来没有机会覆盖url加载。
发布于 2011-02-03 13:23:22
从我在webview中介绍的内容到目前为止,当你调用webview.load(" website ")时,shouldOverrideUrlLoading()不会被调用,但如果这个网站有重定向到另一个网站,它就可以工作。所以解决办法就是在调用webview.load("website")时做你想做的事情(就像调用一个写入日志Log.e(“加载url",url )的函数)因为你已经知道url和需要做什么,shouldOverrideUrlLoading()只拦截从webview本身发出的请求。
希望我能帮上忙。
https://stackoverflow.com/questions/3009734
复制相似问题