Android(安卓)WebView的使用(一)
16lz
2021-12-10
WebView的基本使用:
1.需要在AndroidManifest.xml中添加权限
2.在xml布局文件中添加WebView控件
3.加载网页,使用loadUrl
mWebView = (WebView)findViewById(R.id.webview);// mWebView.loadUrl("http://192.168.1.104:8080/Clouda/www/index.html"); mWebView.loadUrl("file:///android_asset/www/index.html");
设置WebView要显示的网页方法有很多:
互联网页面直接用:
mWebView.loadUrl("http://192.168.1.104:8080/Clouda/www/index.html");
本地文件用:
mWebView.loadUrl("file:///android_asset/www/index.html");
本地文件存放在:assets文件中。 还可以直接载入html的字符串,如:
String htmlString = "Title
This is HTML text
";// 载入这个html页面myWebView.loadData(htmlString, "text/html", "utf-8");
Formatted in italics
Anothor Line
mWebView.getSettings().setJavaScriptEnabled(true);
5.重写WebViewClient类的shouldOverrideUrlLoading函数,使用WebView加载Url
mWebView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } });
public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }
mWebView.goBack(); //向后浏览历史页面
mWebView.canGoBack();
mWebView.goForward(); //向前浏览历史页面
mWebView.canGoForward()
mWebView.clearCache(); //清除缓存
7. webView.stopLoading()停止加载页面
8.设置滚动条风格
mWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
如果想取消滚动条,在布局文件中加上 android:scrollbars="none"
//得到WebSettings对象,设置支持Javascript的参数mWebView.getSettings().setJavaScriptEnabled(true);
//设置可以支持缩放mWebView.getSettings().setSupportZoom(true);
//设置默认缩放方式尺寸是farmWebView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
//设置出现缩放工具mWebView.getSettings().setBuiltInZoomControls(true);
在设置缩放时,如果HTML页面也设置,则代码设置的没有效果。
WebView与JS交互
mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid(final int i) { mHandler.post(new Runnable() { public void run() { mWebView.loadUrl("javascript:test('aa')"); Toast.makeText(MainActivity.this, "测试调用java " + i, Toast.LENGTH_LONG).show(); } }); } }, "demo"); }
addJavascriptInterface(Object obj,String interfaceName),该方法将一个java对象绑定到一个javascript对象中,javascript对象名就是 interfaceName(demo),作用域是Global。这样初始化webview后,在webview加载的页面中就可以直接通过 javascript:window.demo访问到绑定的java对象了,下面来看看HTML代码。
This is my HTML page.
Hello World
HTML页面可以通过
"window.demo.clickOnAndroid(2)"
来调用Java代码,同样Java代码也可以调用JS代码
mWebView.loadUrl("javascript:test('aa')");
更多相关文章
- Android2.2 API 中文文档系列(2) —— EditText
- android edittext 设置行距不影响光标高度
- Android(安卓)TabLayout 浅显总结
- Android(安卓)Studio(二):快捷键设置、插件安装
- Android(安卓)关于获取摄像头帧数据
- Android(安卓)View类属性及方法
- Android基础 --- Widget
- android 已省内存方式把图片加载到内存
- Android全屏时软键盘遮住输入框修改布局解决方案