android WebView使用;

现在H5这么火,你在不会使用WebView 你就OUT了。


今天研究了一天WebView的视频播放功能,可能我的理解能力差,所以研究时间长了点。现在分享一下我的学习经历。

这是一些基本的使用方法

<span style="white-space:pre">	</span>/*mWebView.goBack();   //后退
        mWebView.goForward();//前进
        mWebView.reload();  //刷新*/
        mWebView.loadUrl(toUrl);
		
        //设置当前在webView中显示
        mWebView.setWebViewClient(mWebViewClient);
		
        //设置获得当前加载进度;
        mWebView.setWebChromeClient(mWebChromeClient);
		
        //如果当前显示页面有输入框时可以获得焦点
        mWebView.requestFocus();
		
        //滚动条风格,为0指滚动条不占用空间,直接覆盖在网页上
        mWebView.setScrollBarStyle(0);
		
        //获得WebView的设置项;
        mWebSettings = mWebView.getSettings();
		
        //设置编码格式
        mWebSettings.setDefaultTextEncodingName("GBK");//设置字符编码
		
        //设置WebView是否需要进行缓存
        mWebSettings.setCacheMode(WebSettings.LOAD_NO_CAHE)//关闭缓存;WebSettings.LOAD_CACHE_ELSE_NETWORK;开启缓存

        //设置开启JS
        mWebSettings.setJavaScriptEnabled(true);
		
        //把图片加载放在最后来加载渲染
        mWebSettings.setBlockNetworkImage(false);
		
        //listview,webview中滚动拖动到顶部或者底部时的阴影
        mWebView.setOverScrollMode(View.OVER_SCROLL_NEVER);



下面试设置前需要启动支持js 

	mWebSettings = mWebView.getSettings();  
        mWebSettings.setJavaScriptEnabled(true);  
         private WebChromeClient mWebChromeClient = new WebChromeClient() {   
            @Override   
            public void onProgressChanged(WebView view, int newProgress) {  
                super.onProgressChanged(view, newProgress);  
                //设置当前加载的进度   
                if (newProgress == 100) {   
                    //加载完成   
                } else {   
                //正在加载一般会在这里显示一个dialog提示加载进度;一般会隐藏WebView等到加载完毕显示;  
                }  
            }  
  
  
            @Override  
            public void onShowCustomView(View view, CustomViewCallback callback) {  
                super.onShowCustomView(view, callback);  
                //当点击全屏显示时调用该方法  
             //这个方法适用于在WebView里 播放视频时,点击全屏播放,调用该接口;  
            }  
  
            @Override  
            public void onHideCustomView() {  
                super.onHideCustomView();  
                //在全屏情况下 点击小屏幕显示调用该方法;   
  
            }  
     };  
        //为WebView设置该属性;  
      mWebView.setWebChromeClient(mWebChromeClient);




 如果不设置这个属性,WebView.loadUrl(url); WebView加载网络地址时会跳转到浏览器加载,而不是在本页面的WebView加载; 

我用的是Android5.0系统,不加下面代码也是在WebView中加载,只是看到网络有人说会跳转到浏览器;所以我也就这么说了。可能不对,待考证;

private  WebViewClient mWebViewClient = new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            //设置在webView中显示而不是在第三方浏览器中打开
            Log.i(TAG, "shouldOverrideUrlLoading: url ---> " + url);
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
           //页面加载完毕后回调的方法
        }

		@Override
		public void onPageStarted(WebView view,String url,Bitmap favicon){
			super.onPageStarted(view,url,favicon)
			//要加载页面的时候调用该方法;
			}
		};
		mWebView.setWebViewClient(mWebViewClient);



以上代码是基础了解的,以后肯定会用到的,下面代码是 在WebView中的页面点击进入另一个页面,当点击back,也就是返回键时,返回上一个页面;

这个存在一定的bug 有的页面,有的时候返回到首页后,在按返回键,重复加载同一个页面。

我想一个主意就是将每次跳转的页面存入一个list集合中,每次按返回键跳转回上个页面,但这是很蠢的方法,加入着急实现该功能,就先对付一下,打好标记等想到好的办法在该回来。

<pre name="code" class="java">	这个方法是放在Activity当中的
	@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            //当前点击的是返回键
            if (mWebView.canGoBack()){
                //判断当前是否可以继续返回
                //返回上一个页面;
                mWebView.goBack();
            }else {
                //WebView已经到达首页
                //可以进行结束语句,如finsh()关闭当前Activity 也可以做别的;
            }
           return true;
        }
        return super.onKeyDown(keyCode, event);
    }


 

目前对WebView的基本属性已经进行了解了,如加载页面时,显示dialog,返回键,跳转上一个页面;

下次分析如何使用WebView实现全屏切换,是在WebView中进行切换哦!!!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值