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
Formatted in italics
Anothor Line

";// 载入这个html页面myWebView.loadData(htmlString, "text/html", "utf-8");


4.如果访问页面中有JS,必须使WebView支持JS

mWebView.getSettings().setJavaScriptEnabled(true);


基本上到这里就可以运行加载页面成功了,但是我们点击页面链接是发现会调用系统的浏览器来加载,所以要想使用WebView加载还需设置如下:

5.重写WebViewClient类的shouldOverrideUrlLoading函数,使用WebView加载Url

mWebView.setWebViewClient(new WebViewClient(){                   public boolean shouldOverrideUrlLoading(WebView view, String url) {                       view.loadUrl(url);                       return true;                   }               });  


6.当我们点击页面链接跳到其他页面时,点击Back按钮发现退出应用了,我们要让它退回前一页面,设置如下

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"


9.WebSettings : WebView组件有一个辅助类叫WebSettings,它管理WebView的设置状态

//得到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')");




更多相关文章

  1. Android2.2 API 中文文档系列(2) —— EditText
  2. android edittext 设置行距不影响光标高度
  3. Android(安卓)TabLayout 浅显总结
  4. Android(安卓)Studio(二):快捷键设置、插件安装
  5. Android(安卓)关于获取摄像头帧数据
  6. Android(安卓)View类属性及方法
  7. Android基础 --- Widget
  8. android 已省内存方式把图片加载到内存
  9. Android全屏时软键盘遮住输入框修改布局解决方案

随机推荐

  1. Android(安卓)Hierarchy Viewer
  2. Android(安卓)GMS Checklist【Android(安
  3. 跟踪内存分配
  4. Android(安卓)样式和主题(style&theme)
  5. Android在ImageView控件中图片怎样铺满整
  6. 启动Android系统移植计划
  7. Android中的AppWidget(上)
  8. Android(安卓)apk 学习笔记 --- Android(
  9. [转]Android用户人均广告价值超iPhone 80
  10. android简介