WebView这个控件在android中很常见,用于展示网络页面,基本上项目中会在注册协议,关于我们,一些说明的页面用到,由后台用富文本框编辑之后返回给前端一个url链接进行展示。下面几句代码搞定。
对了AndroidManifest.xml中必须使用许可 "android.permission.INTERNET", 否则会出Web page not available错误。
在这里说一下setJavaScriptEnable()这个方法是为了访问页面中的JavaScript,一旦使能之后,你也可以自己创建接口在你的应用和JavaScript代码间进行交互。如果没有调用这个方法可能会显示空白页面或者web页面部分元素未显示。
webview的状态方法
WebView的状态方法跟Activity类似
这些方法我只用到过destroy,场景是当页面中存在媒体播放器和音乐播放器时,在结束页面时还在播放时必须销毁webview
webview.getParant.removeView(webView); webView.destroy();
webSetting里面一些常用的方法
//设置自适应屏幕,两者合用
webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小
webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
自适应这里很多人烦恼的是网页上图片过大导致网页大于一个屏幕的宽度出现左右滑动的现象,这里有一个方法就是加载js代码
获取图片元素 宽度按屏幕百分之百计算 高度按比例自适应 这个操作在监听页面加载完成时做,这个监听在文章下面会写到缩放操作
webSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。
webSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放
webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件
WebViewClient类 监听页面加载过程中的各种状态
当我们通过loadUrl的方式重新加载一个网址时候,这时候会先调用onPageStarted再调用shouldOverrideUrlLoading,当我们在打开的这个网址点击一个link,这时候会先调用shouldOverrideUrlLoading 再调用onPageStarted。 不过shouldOverrideUrlLoading不一定每次都被调用, 只有需要的时候才会被调用。
onReceivedHttpError 也是加载错误 页面加载错误时在onReceivedError补获不到信息时可以试试这个方法
WebChromeClient 监听一个页面的js交互
这里先介绍一个加载进度和头部标题加载 js在后面会单独写一篇webview的js交互在activity上使用webview,在不断点击页面里面链接进行跳转的时候涉及一个回退问题。这里有2个方式
’后面会单独写一个关于webview js交互和webview缓存的问题,希望各位看官指点。
网友评论