首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >安卓WebViewClient问题

安卓WebViewClient问题
EN

Stack Overflow用户
提问于 2010-06-09 20:35:51
回答 1查看 2.1K关注 0票数 1

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

类的定义如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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加载。

EN

回答 1

Stack Overflow用户

发布于 2011-02-03 13:23:22

从我在webview中介绍的内容到目前为止,当你调用webview.load(" website ")时,shouldOverrideUrlLoading()不会被调用,但如果这个网站有重定向到另一个网站,它就可以工作。所以解决办法就是在调用webview.load("website")时做你想做的事情(就像调用一个写入日志Log.e(“加载url",url )的函数)因为你已经知道url和需要做什么,shouldOverrideUrlLoading()只拦截从webview本身发出的请求。

希望我能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3009734

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文