// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView=(WebView)findViewById(R.id.mwebview);
//设置编码
// mWebView.getSettings().setDefaultTextEncodingName("utf-8");
//支持js
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/button.html");
}
html中将应有的方法function放入javascript中不需在body中调用。
android中activity中动作mWebView.loadUrl("javascript:方法名");
打开本包内asset目录下的index.html文件
//mWebView.loadUrl("file:///android_asset/index.html");
打开本地sd卡内的index.html文件
//mWebView.loadUrl("content://com.android.htmlfileprovider/sdcard/index.html");
打开指定URL的html文件
//mWebView.loadUrl("http://wap.baidu.com");
交互的时候可能出现onkeydown函数没执行的情况,此时可以根据dispatchkeyevent函数进行判断,此函数在按键按下和抬起分别执行一次,应根据event.getEvent()的值判断用户是否按下按钮或抬起按钮,当event.getEvent()==0,表示按下。当event.getEvent()==1,表示抬起。而event.getKeyCode()的值表示按键的键值。可以根据键值进行相关操作。
加载百度等页面可能出现在机器的自带浏览器上显示,此时如果不想在自带浏览器上显示而是想在webview本身上显示则:
mWebView.setWebViewClient(new WebViewClient() {
//点击网页中按钮时,在原页面打开
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
//页面加载完成后执行
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//例如有的网页想限制打开时可以在此方法中另外输入程序。
}
});
如果希望浏览的网页后退而不是推出浏览器,需要webview覆盖url加载,让它自动生成历史的访问记录,那样就可以通过后退或前进访问已访问过的站点
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_BACK){
if(webview.canGoBack){
webview.goBack();//返回上一页
}else{
System.exit(0);//退出程序
}
}
}