Android WebSetting加载网页的视图

1.WebSetting中支持缩放的一项:setSupportZoom

2.WebSetting中设置编码格式的一项:setDefaultTextEncodingName

3.WebView中启动支持javascript的正确方式:WebSettings settings=webView.getSettings(); settings.setJavaScriptEnabled(true);

4.webView优先使用缓存正确的方式是:webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

5.WebViewClient可以用来帮助WebView处理各种通知, 请求事件

6.OnScrollListener.SCROLL_STATE_IDLE表示滚动停止!

package com.example.day18_02;

import android.graphics.Bitmap;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {
private WebView wv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        wv=findViewById(R.id.wv);
        //,获取webView的设置选项
        WebSettings settings = wv.getSettings();

        //表示当前的webview支持javaScript*****************
        settings.setJavaScriptEnabled(true);

        //三设置是否支持缩放
        settings.setSupportZoom(true);
        //设置是否使用webview内置的缩放组件,由悬浮在窗口上的缩放控制跟手势控制组成
        settings.setBuiltInZoomControls(true);
        //是否显示窗口的悬浮设置默认是true
        settings.setDisplayZoomControls(true);

        //四屏幕自适应
        settings.setUseWideViewPort(true);//支持任意比例缩放`
        //当页面宽度超过WebView显示宽度时,缩小页面适应WebView,默认false
        settings.setLoadWithOverviewMode(true);

        //五设置默认字体的大小1-72
//        settings.setDefaultFixedFontSize(60);
//        settings.setTextSize(WebSettings.TextSize.LARGER);
        settings.setTextSize(WebSettings.TextSize.NORMAL);//默认大小

        //六设置编码格式
        settings.setDefaultTextEncodingName("UTF-8");

        //7设置缓存模式
        //LOAD_DEFAULT 默认加载方式
        //LOAD_CACHE_ELSE_NETWORK 按网络情况使用缓存
        //LOAD_NO_CACHE 不使用缓存
        //LOAD_CACHE_ONLY 只使用缓存
        settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

        //8清除缓存文件夹下的缓存信息
        wv.clearCache(true);

        //9消除历史信息
        wv.clearHistory();

        //10消除webView缓存的信息
        wv.clearFormData();

        //十一 如果WebView需要用户手动输入用户名,密码.WebView必须设置支持获取手势焦点
        wv.requestFocusFromTouch();

        //*************必须放在设置属性的最下面*************
        wv.loadUrl("https://www.baidu.com/");

        //防止报错的方法,写在加载网址的方法的上面
        wv.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                Log.i("hh",newProgress+"");
            }
        });

        wv.setWebViewClient(new WebViewClient(){
            //开始加载网址
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                Log.i("hh","网页开始加载");
            }

            //加载的过程中跳转页面
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if(url.contains("baidu")){
                    wv.loadUrl("http://www.vip.com/");
                }
                return true;
            }

            //加载结束
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                Log.i("hh","网页开始结束");
            }
        });
    }
    // 设置WebView生命周期写到对应方法:(按键返回)    @Override
    protected void onPause() {
        super.onPause();
        wv.onPause();
    }

    @Override
    protected void onResume() {
        super.onResume();
        wv.onResume();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        wv.destroy();
    }

    //返回键
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode==KeyEvent.KEYCODE_BACK){
            if(wv.canGoBack()){
                wv.goBack();
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/lixiaona_1101/article/details/80820546