WebView简易网页网络访问
2016-10-11 21:23
274 查看
示例代码块
html代码: <html> <head> <title>JS交互</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <script type="text/javascript"> function invokedByJava(param) { document.getElementById("content").innerHTML = "Java has invoked JS function and returnd the data :"+param; } </script> </head> <body> <p id="content"></p> <p> <input type="button" value="调用Java方法" onclick="window.stub.jsMethod('来至JS的参数');" / > <input type="button" value="调用alert" onclick="alert('hello')" /> </p> </body> </html> |
一、WebView简介 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView的组件;WebView(网络视图) 能加载显示网页 |
二、WebView的使用范例 WebView简单使用的步骤如下: (1)、在布局文件中声明WebView (2)、在Activity中实例化WebView (3)、需要在AndroidManifest.xml文件中添加网络权限: <uses-permission android:name="android.permission.INTERNET"/> (4)、调用WebView的loadUrl( )方法,设置WevView要显示的网页 (5)、为了让WebView能够响应超链接功能,需要通过setWebViewClient( )设置WevViewClient (6)、如果想要知道网页加载进度等信息,需要通过setWebChromeClient()设置 WebChromeClient; WebView主要属性设置如下: //设置滚动条样式 webview.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); webview.setHorizontalScrollBarEnabled(false); //加载网络页面 webview.loadUrl(url); //加载本地html webView.loadUrl("file:///android_asset/demo.html"); //加载html源码 webView.loadDataWithBaseURL("","html源码","text/html","utf-8",""); WebView网页现实的相关设置要通过WebSettings设置,如下: WebSettings settings = webview.getSettings(); //支持JavaScript settings.setJavaScriptEnabled(true); //支持网页缩放 settings.setSupportZoom(true); settings.setBuiltInZoomControls(true); //设置网页缓存 settings.setAppCacheEnabled(true);// 开启缓存 ettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);// 缓存优先模式 settings.setAppCacheMaxSize(8 * 1024 * 1024);// 设置最大缓存为8M //支持多窗口 settings.setSupportMultipleWindows(true); 重写WevViewClient: public class MyWebViewClient extends WebViewClient{ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return false; } @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); } } 重写WebChromeClient: WebChromeClient mChromeClient = new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); } /** * 支持alert效果 */ @Override public boolean onJsAlert(WebView view, String url, String message, f inal JsResult result) { //此处可以弹出dialog return true; } /** * 处理Js的Confirm */ public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { //此处可以弹出警告弹框 return true; } }; |
三、重写返回键实现点击返回键回退网页 注意在支持JavaScript的网页就不需要判定给予的地址和返回地址是否一样(url。equals(webview.geturl())) //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { webView.goBack(); //goBack()表示返回WebView的上一页面 return true; } return false; } |
四、 WebView和JaveScript交互: webView.addJavascriptInterface(new JsToJava(), "stub");//js调用Android //调用JS方法,并传递参数 webView.loadUrl("javascript:invokedByJava('哈哈')"); private class JsToJava { @JavascriptInterface public void jsMethod(final String paramFromJS) { webView.post(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this,paramFromJS,Toast.LENGTH_SHORT).show(); } }); } } |
相关文章推荐
- (二)——添加网络权限和WebView访问网页
- 用webview访问网站,当时老是出现“找不到网页,网页可能暂时出现故障”
- 如何让用户在用webview访问网页时嵌入我们自己的内容
- webview访问assets目录下找不到网页
- 如何让用户在用webview访问网页时嵌入我们自己的内容
- WebView加载网页-进度显示-网络上传图片并压缩
- Android 中访问网页 webView
- 网络技术之——WebView(轻松展示各种网页)
- 让用户WebView访问网页时嵌入开发者自己的内容
- IOS网络第七天WebView-02WebView和网页的交互2,删除大众点评多余文字,加上蒙版进度
- WKWebView和UIWebView查看访问网页html内容的方法
- Metro中控件WebView访问外部的网页显示一片空白
- Android中的WebView打开网页,以及对当前网页的缩放等,网络连接判断
- android webview不能访问网络
- Android: WebView加载网页的几种方式及网络异常处理
- Android网络编程实践之旅(四):使用WebView浏览网页
- 用WebView访问证书有问题的SSL网页以及在文件关联窗口中选择浏览器后,浏览器如何识别到该连接地址
- 利用webview访问浏览网页
- Android的WebView加载网页的几种方式及网络异常处理
- 安卓Webview缓存网页数据(无网络正常显示)