浏览器控件是每个开发环境都具备的,windows有webbrowser,android和ios都有webview。只是其引擎不同,相对于微软的webbrowser,android及ios的webview的引擎都是webkit,对Html5提供支持。
添加权限:AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。
在要Activity中生成一个WebView组件:WebView webView = new WebView(this);或者可以在activity的layout文件里添加webview控件。
<WebView
android:id="@+id/wv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
设置webview要访问的页面。分为加载asset里的文件,加载网络文件,加载sdcard文件等
mWebview.loadUrl("file:///android_asset/Chapter1_1.html");
mWebview.loadUrl("http://www.baidu.com");
mWebview.loadUrl("content://com.android.htmlfileprovider/sdcard/Chapter1_1.html");//该条测试不成功 mWebview.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/Chapter1_1.html");
如果访问的页面中有Javascript,则webview必须设置支持Javascript。
webview.getSettings().setJavaScriptEnabled(true);
触摸焦点起作用
requestFocus();
取消滚动条
this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);
如果希望点击链接由自己处理,而不是新开Android的系统browser中响应该链接。给WebView添加一个事件监听对象(WebViewClient)并重写其中的一些方法
mWebview.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webview与js
mWebview.addJavascriptInterface(new Object() {
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
mWebview.loadUrl("javascript:wave()");
}
});
}
}, "demo");