本帖最后由 liu 于 2018-12-18 11:10 编辑  
 
WebView 
 
  
 
 
WebView可以用来显示网页,使用时需要在AndroidManifest.xml中添加"android.permission.INTERNET"权限 
 
 
一、使用方法 
1、加载网址                  webView.loadUrl("http://www.baidu.com");      
2、加载本地资源         webView.loadUrl("file:///android_asset/xxx.html"); 
 
二、WebSettings类 [Java] 纯文本查看 复制代码    //声明WebSettings子类        WebSettings webSettings = webView.getSettings();
        //设置支持Javascript
        webSettings.setJavaScriptEnabled(true);
        //设置自适应屏幕
        webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小 
        webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
        //缩放操作
        webSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。
        webSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放
        webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件
       //关闭webview中缓存 
        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        //设置可以访问文件 
        webSettings.setAllowFileAccess(true);
        //支持通过JS打开新窗口 
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        //支持自动加载图片
        webSettings.setLoadsImagesAutomatically(true);
        //设置编码格式
        webSettings.setDefaultTextEncodingName("utf-8"); 
三、WebViewClient类 
[Java] 纯文本查看 复制代码  webView.setWebViewClient(new WebViewClient(){
            //返回true时用WebView打开,返回false时调用系统浏览器或第三方浏览器
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
            //页面开始加载时调用
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
            }
            //页面加载完毕时调用
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
            }
            //加载页面资源时会调用
            @Override
            public void onLoadResource(WebView view, String url) {
                super.onLoadResource(view, url);
            }
            //加载页面的服务器出现错误时调用
            @Override
            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                super.onReceivedError(view, request, error);
            }
            //处理https请求时调用
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                super.onReceivedSslError(view, handler, error);
            }
        }); 
四、WebChromeClient类 
[Java] 纯文本查看 复制代码         webView.setWebChromeClient(new WebChromeClient() {
            //获取页面加载进度
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                super.onProgressChanged(view, newProgress);
            }
            //获取页面标题
            @Override
            public void onReceivedTitle(WebView view, String title) {
                super.onReceivedTitle(view, title);
            }
            //获取页面图标
            @Override
            public void onReceivedIcon(WebView view, Bitmap icon) {
                super.onReceivedIcon(view, icon);
            }
        }); 
五、关于点击手机返回键WebView的后退或者退出 
重写onKeyDown()方法 
[Java] 纯文本查看 复制代码  @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (webView.canGoBack()) {
                //返回上一页面
                webView.goBack();
                return true;
            } else {
                //退出程序
                System.exit(0);
            }
        }
        return super.onKeyDown(keyCode, event);
    } 
 
 
 
 
 
 
 |