最近工作中,基本一直在用WebView,今天就把它整理下:
WebView 顾名思义,就是放一个网页,一个看起来十分简单,但是用起来不是那么简单的控件。
首先你肯定要定义,初始化一个webview,其实网上的例子很多,我这里就简单的把一些WebView 中可能会用到的的很重要的属性以及支持全屏播放视频该怎么实现的代码粘出来,直接放到项目中去就行了
首先需要添加权限:
<uses-permission android:name="android.permission.INTERNET"/>
private WebView webview; webview = (WebView) findViewById(R.id.webview);
1.直接打开浏览器使用
Uri uri = Uri.parse("http://baidu.com"); Intent inten - new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
2.打开网页时不调用系统浏览器,而是在本WebView中显示
mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } });
myWebView.setWebViewClient(new WebViewClient() { @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 boolean shouldOverrideUrlLoading(WebView view, String url) { //返回值是true的时候WebView我打开,为false则系统浏览器或第三方浏览器打开。如果要下载页面中的游戏或者继续点击网页中的链接进入下一个网页的话,重写此方法下,不然就会跳到手机自带的浏览器了,而不继续在你这个webview里面展现了 return true; } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { //想在收到错误信息的时候,执行一些操作,走此方法 } });
3.后退
还有一点很重要,要想进入通过webview浏览网页,而且点返回键是想在webview中返回,而不是直接退出程序,那么就得重写onKeyDown方法。
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && webView.canFoBack()) { // goBack()表示返回WebView的上一页面 webView.goBack(); //退出全屏 quitFullScreen(); return true; } else { //结束当前页 return super.onKeyDown(keyCode, event); } }
4.页面缩放
适应手机屏幕
webView.getSettings().setUseWideViewPort(true); webView.getSettings().setLoadWithOverviewMode(true);
放大设置
webView.getSettings().setDisplayZoomControls(true);
无限放大
webView.getSettings().setBuiltInZoomControls(true);
比例缩放
webView.setInitialScale(50);
ori