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(); } } } }