【发布时间】:2011-03-01 21:14:11
【问题描述】:
我定义了一个扩展 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。
当用户点击链接时,我需要调用完整的网络浏览器,但我从来没有机会覆盖 url 加载。
【问题讨论】:
-
尝试添加
@Override声明,看看是否有任何显示。你的签名看起来不错,但也许我们都遗漏了一些东西......
标签: android