WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页。WebView有两种添加方法。
先说第一种方法:
需要添加权限:
<uses-permission android:name="android.permission.INTERNET"/>
静态添加(xml布局中添加):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_libertinism_bj_fragment1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="luomeng.com.teapai.InfoFragmentActivity">
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"></WebView>
</RelativeLayout>
在Activity中实例化WebView
WebView mWebView;
String url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_libertinism_bj_fragment1);
mWebView = (WebView) findViewById(R.id.webview);
//设置WebView属性
WebSettings settings = mWebView.getSettings();
settings.setUseWideViewPort(true);
settings.setDomStorageEnabled(true);
settings.setLoadWithOverviewMode(true);
//能够执行Javascript脚本
settings.setJavaScriptEnabled(true);
//上一个Activity传递过来的地址
url = getIntent().getStringExtra("infoPath");
//设置Web视图
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
//加载需要显示的网页
mWebView.loadUrl(url);
}
@Override
//设置回退
//覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack(); //goBack()表示返回WebView的上一页面
return true;
}
return false;
}
@Override
protected void onPause() {
mWebView.reload();
super.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mWebView.clearFormData();
mWebView.removeAllViews();
mWebView.destroy();
mWebView = null;
}
大功告成,一切OK。
第二种方法:
动态添加(Java代码)
public class MainActivity extends Activity {
private WebView webview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//实例化WebView对象
webview = new WebView(this);
//设置WebView属性,能够执行Javascript脚本
webview.getSettings().setJavaScriptEnabled(true);
//加载需要显示的网页
webview.loadUrl("http://www.51cto.com/");
//设置Web视图
setContentView(webview);
}
@Override
//设置回退
//覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack(); //goBack()表示返回WebView的上一页面
return true;
}
return false;
}