您的位置:首页 > 移动开发 > Android开发

Android:打造一个属于自己的浏览器(2)

2017-06-03 18:13 225 查看
昨天我们介绍了WebView控件的基本操作方法,今天我们就来学习一下WebView控件的WebViewCient监听事件。当然,我们还是使用上次的例子,就是那个叫mainWebView的WebView。

我们可以通过WebView控件的
setWebViewClient
函数来使用WebView的各种监听事件,其使用方法如下:

final WebView wv = (WebView)findViewById(R.id.mainWebView);
wv.setWebViewClient(new WebViewClient()
{
//在这里写事件代码
});


在我们的Android Studio开发工具中按键盘上的Ctrl+O键,就可以在弹出的对话框里自由地选择要加入的事件代码了。



接下来,我们就可以熟悉一下各种各样的事件了:

shouldOverrideUrlLoading


网页正在加载时触发

shouldOverrideKeyEvent


点击按键时触发

onPageStarted


网页开始加载时触发

onPageFinished


网页加载完成时触发

onLoadResource


网页内资源加载时触发

onReceivedError


收到网页错误时触发

onFormResubmission


重新请求网络数据时触发

这时候,你估计已经很满足了吧,学了这么多东西,收获真大啊!但别着急,你再运行一下程序,随便打开一个链接,是不是出现了一个问题呢?

这个问题就是说,WebView控件跳转网页时,都会默认从系统浏览器(而不是从我们的WebView)进行加载,更有甚者,应用程序还让我们选择打开网页要用的浏览器。那么,如何解决这个看起来很棘手的问题呢?

我们可以在shouldOverrideUrlLoading事件里进行一些基本的设置,以此解决这个问题。总体来讲,监听器里应该写的代码如下:

@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return false;
}


再次运行程序,就会发现问题已经解决了。

好了,关于WebView控件我就介绍到这里吧,顺便贴上《Android:打造一个属于自己的浏览器(1)》的网址:

http://blog.csdn.net/qq_33357211/article/details/72847424
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: