安卓使用Webview来加载和显示网页内容,首先在layout文件中定义Webview
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="cn.com.buynow.jspot.MainActivity" tools:showIn="@layout/app_bar_main"> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent"></WebView> </RelativeLayout>
Activity代码中,使用WebView.loadURL()方法来加载页面,非常简单。
也可以设置一些属性,如是否使用Javascript脚本,是否使用缓存等。
protected void loadURL(String params) { webView = (WebView) this.findViewById(R.id.webView); webView.loadUrl(PRODUCT_QUERY_URI + params); WebSettings settings = webView.getSettings(); settings.setAppCacheEnabled(false); settings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { // 加载完成 } else { // 加载中 } } }); }
设置是通过 WebSettings 这个类实现
WebSettings settings = webView.getSettings();
settings.setAppCacheEnabled(false); // 是否启用缓存
settings.setJavaScriptEnabled(true); // 是否启用Javascript