webview是android里面一个加载网站的控件,首先要执行上网的功能,必须在androidmanifest里面加入可以上网的权限:
<uses-permission android:name="android.permission.INTERNET" />
在xml中加入这句话,可以去掉webview的滚动条,
android:scrollbars="none"
为了使webview支持JS,得先加入
webview.getSettings().setJavaScriptEnabled(true);
这两句代码可以使webview中的内容自适应手机屏幕;
webview.getSettings().setUseWideViewPort(true); webview.getSettings().setLoadWithOverviewMode(true);
加载网址
webview.loadUrl("http://www.baidu.com");
加载本地网址;
webview.loadUrl("file:///android_asset/index.html");
当你的界面是有背景色(非白色)的时候,需要设置webview的背景色,
webview.setBackgroundColor(Color.parseColor("#FF0000"));
如果加载网址里面的网址再打开时要在app里面响应则要写上以下代码:
webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
如果在一个activity中加载webview,需对返回键进行监听,如果webview能返回上一个网页就执行返回上一个网页,如果没有上一个网页可返回,则结束掉这个activity。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack();
return true;
}
else if(keyCode == KeyEvent.KEYCODE_BACK){
OneActivity.this.finish();
return true;
}
return false;
}
当然也可以不用重写返回键的监听事件,给webview设置一个ontouchlistener即可:
webview.setOnTouchListener(new View.OnTouchListener() {
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
webview的刷新功能:
webview.loadUrl(webview.getUrl());
即从新加载一个当前网址。
webview清除历史跟清除缓存
webview.clearCache(true);
webview.clearHistory();
有时候webview加载的是一个图表或者一些不可动的html,那就需要设置webview不可滑动,重写webview的ontouch监听事件,
webview.setOnTouchListener(new View.OnTouchListener() {
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
在webview中,获取加载的html的文章标题的方法:
WebChromeClient bin = new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
main_web_off_tv.setText("" +title);
}
};
webview.setWebChromeClient(bin);