Android WebView的使用(一)

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);
//设置默认缩放方式尺寸是far
mWebView.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. 





HTML页面可以通过
"window.demo.clickOnAndroid(2)"
来调用Java代码,同样Java代码也可以调用JS代码

mWebView.loadUrl("javascript:test('aa')");




你可能感兴趣的:(Android,webview,Android)