android webview使用小结

使用webview加载网页



一、webview加载资源类型

1.1  加载web资源       webview.loadUrl("http://www.baidu.com");

1.2  加载本地资源      webview.loadUrl("file:///android_asset/xxx.html");


二、webview处理页面导航方式

        webview加载一个网页时,一般默认处理是打开系统自带的或者第三方的浏览器,然后跳转到相应的网页,但是如果你想要在本项目中显示一个网页的话则需要重新设置。

        在本页面中打开网页的方法:

        mWebview=(WebView)findViewById(R.id.webview);
        mWebview.loadUrl("http://www.baidu.com");
        mWebview.setWebViewClient(new WebViewClient(){

            //如果返回值为true时,则在本页面中打开网页
            //如果返回值为false时,则调用系统的浏览器或者是第三方浏览器
            @Override
            public boolean shouldOverrideUrlLoading (WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

三、webview中使用JavaScript

       如果想要在web页面中使用JavaScript,则需要在webview中启用JavaScript。启用JavaScript可以通过webview中的WebSettings,可以通过getSettings()获取WebSettings的值,然后通过setJavaScriptEnabled来启用JavaScript。

    WebSettings webSettings=mWebview.getSettings();
    webSettings.setJavaScriptEnabled(true);

四、webview中的后退

       正常情况下,如果我们不做处理的话,当我们在网页中点击多个链接时,然后点击返回按钮时,会整个退出应用,这样的效果体验很不好,所以一般我们都会重写系统的返回操作功能,然后判断当前网页是否具有返回的功能,如果可以的话,我们就返回到上个页面而不是退出整个应用。相应的代码为:

    @Override
    public boolean onKeyDown (int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && mWebview.canGoBack()) {
            mWebview.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

五、webview中显示加载的进度

       有的时候我们显示一个网页时,如果不给力的话,就会一直显示一个空白页面,这样用户体验感觉不是很好,这种情况下,我们可以通过显示一个进度条,告诉用户当前已经加载了多少,这样就可以改善用户体验,给用户一个良好的体验。

    mWebview.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged (WebView view, int newProgress) {
                //webView的加载progress为0-100,当progress=100时提示加载完成
                if (newProgress==100){
                    //加载完成时所做的操作,如关闭对话框等。
                }else{
                    //正在加载中所做的操作,如显示一个进度条等。
                }
            }
        });

六、webview缓存使用

       当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹: 我们请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webviewCache文件夹下. WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即AppCache)。google的官方说明为:

android webview使用小结_第1张图片

      代码设置为:

    WebSettings webSettings = mWebview.getSettings();
    //优先使用本地缓存
    webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);


你可能感兴趣的:(Android基础学习之路)