Android笔记——WebView

来源:互联网 发布:bluebox是什么软件 编辑:程序博客网 时间:2024/04/19 09:35

Android笔记——WebView

注:本文笔记来自慕课网
  • 1、通过Intent调用系统浏览器打开页面
1.  String url = "http://www.baidu.com";2.  Uri uri = Uri.parse(url);3.  Intent intent = new Intent(Intent.ACTION_VIEW, uri);4.  startActivity(intent);
  • 2、WebView基本使用

    • (1)、布局文件中使用<webview />标签
    • (2)、在Mainfirst文件中添加网络权限
    • (3)、在activity中声明WebView并通过loadUrl(url)函数打开页面
      • loadUrl(url)函数可打开两类文件
        • 一类是本地文件,存放在assets文件夹中webView.loadUrl("file:///android_asset/xx.html")//一定要三个斜杠
        • 一类是web资源
    • (4)、WebView默认使用系统或第三方浏览器打开web资源,然Android提供覆盖此行为
          webView.setWebViewClient(new WebViewClient(){        public boolean shouldOverrideUrlLoading(WebView view, String url){        //返回值是true的时候控制网页在WebView中打开,如果为false则调用系统或第三方浏览器打开            view.loadUrl(url);            return true;        }        //WebViewClient帮助WebView去处理一些页面控制和请求通知    });
  • 3、WebView启用JavaScript

1.  WebSettings settings = webView.getSettings();2.  settings.setJavaScriptEnabled(true);
  • 4、WebView向前的导航(返回按键)
    webview已自动记录网页历史记录
//改写物理按键——返回的逻辑    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        // TODO Auto-generated method stub        if(keyCode==KeyEvent.KEYCODE_BACK)        {            //Toast.makeText(this, webView.getUrl(), Toast.LENGTH_SHORT).show();            if(webView.canGoBack())            {                webView.goBack();//返回上一页面                return true;            }            else            {                System.exit(0);//退出程序            }        }        return super.onKeyDown(keyCode, event);    }
  • 5、页面加载进度
    webView.setWebChromeClient(new WebChromeClient(){            @Override            public void onProgressChanged(WebView view, int newProgress) {                // TODO Auto-generated method stub                //newProgress 1-100之间的整数                if(newProgress==100)                {                    //网页加载完毕,关闭ProgressDialog                    closeDialog();                }                else                {                    //网页正在加载,打开ProgressDialog                    openDialog(newProgress);                }            }            private void closeDialog() {                // TODO Auto-generated method stub                  if(dialog!=null&&dialog.isShowing())                  {                         dialog.dismiss();                         dialog=null;                  }            }            private void openDialog(int newProgress) {                // TODO Auto-generated method stub                if(dialog==null)                {                    dialog=new ProgressDialog(MainActivity.this);                    dialog.setTitle("正在加载");                    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);                    dialog.setProgress(newProgress);                    dialog.show();                }                else                {                    dialog.setProgress(newProgress);                }            }        });
  • 6、WebView缓存使用
    //WebView加载页面优先使用缓存加载    settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
0 0
原创粉丝点击