zoukankan      html  css  js  c++  java
  • android学习笔记WebView的基本使用

      WebView可以看做是一个浏览器,它使用了WebKit渲染引擎加载显示网页。

      WebView的使用需要掌握下面几点,

      1,首先需要开启应用网络访问权限

      在AndroidMinafest.xml中添加 <uses-permission android:name="android.permission.INTERNET"/>

      2,加载一个web资源由两种途径一种是网络资源,一种是加载本地资源

          加载网络资源

      webView.LoadUrl(url);//url就是一个网址字符串 "http://www.baidu.com"

      加载本地资源,本地的网页一般放在asset文件夹中,如果如下方式访问。

      webView.loadUrl("file://android_asset/examle.html");

          3,需要设置网页通过webview去打开,而不是调用本地浏览器或者第三方浏览器打开,如果不设置该项,那么网页会默认从手机自带的浏览器选择打开。

     //覆盖android自带的浏览器或者第三方浏览器,使得网页可以在webview中打开
            webView.setWebViewClient(new WebViewClient(){
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    //返回值为true时控制网页在webview中打开,如果为false,那么在第三方或者系统浏览器中打开
                    //return super.shouldOverrideUrlLoading(view, url);
                    view.loadUrl(url);
                    return true;
                }
            });

      4,如果网页有JavaScript,那么还需要设置webview支持JavaScript

     //启用支持javascript
            WebSettings settings = webView.getSettings();
            settings.setJavaScriptEnabled(true);

      5,就是需要重定义返回按键,因为如果直接点击手机虚拟按键,那么应用程序就会直接退出,而不是返回上一网页。

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

      6,判断网页的加载进度。

     webView.setWebChromeClient(new WebChromeClient(){
                @Override
                public void onProgressChanged(WebView view, int newProgress) {
                   // super.onProgressChanged(view, newProgress);
                    if(newProgress == 100){
                        //网页正在加载
                        setProgressBarVisibility(false);
                    }
                    else
                    {
                        //网页加载完毕
                        setProgress(newProgress*100);
                        setProgressBarVisibility(true);
                    }
                }
            });

      7,加快网页加载速度,使用缓存技术

       优先使用缓存
        webview.getSetting().setCacheMode(WwebSetting.LOAD_CACHE_ELSE_NETWORK);
        不优先使用缓存
        webview.getSetting().setCacheMode(WwebSetting.LOAD_NO_CACHE);
         */
  • 相关阅读:
    CXF学习(2) helloworld
    foreach与Iterable学习
    java基础之JDBC八:Druid连接池的使用
    java基础之JDBC七:C3P0连接池的使用
    java基础之JDBC六:DBCP 数据库连接池简介
    java基础之JDBC五:批处理简单示例
    java基础之JDBC四:事务简单示例
    java基础之JDBC三:简单工具类的提取及应用
    java基础之JDBC二:原生代码基础应用
    java基础之JDBC一:概述及步骤详解
  • 原文地址:https://www.cnblogs.com/techdreaming/p/4948515.html
Copyright © 2011-2022 走看看