Android 提供了内置的浏览器,该浏览器使用了开源的WebKit引擎。WebKit不仅能够搜索网址、查看电子邮件,而且能够播放视频节目。在Android中要使用内置的浏览器,需要通过WebView组件来实现。WebView组件可以轻松实现显示网页功能。
简单实现WebView浏览网页的功能。
webview有两个方法:setWebChromeClient 和 setWebClient
setWebClient:主要处理解析,渲染网页等浏览器做的事情
setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
WebViewClient就是帮助WebView处理各种通知、请求事件的。
下面的这个例子:一个界面加载两个webView 。
在AndroidMainfest.xml设置网络访问权限
<uses-permission android:name="android.permission.INTERNET"/>
在activity_main.xml布局文件的代码如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="800px"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/ic_launcher"
tools:context=".MainActivity" >
<ScrollView
android:id="@+id/goods_right_scrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:id="@+id/goods_linearLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<WebView
android:id="@+id/webview_parameter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<WebView
android:id="@+id/webview_picturedetail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</ScrollView>
</LinearLayout>
在实现文件中添加如下代码
public class MainActivity extends Activity {
private Context mContext;
private WebView parametreWebView;
private WebView pictureDetailWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
parametreWebView = (WebView)findViewById(R.id.webview_parameter);
pictureDetailWebView = (WebView)findViewById(R.id.webview_picturedetail);
// 下面两个属性 可以任意比例缩放
pictureDetailWebView.setVerticalScrollbarOverlay(true); //指定的垂直滚动条有叠加样式
WebSettings settings = pictureDetailWebView.getSettings();
settings.setUseWideViewPort(true);//设定支持viewport
settings.setLoadWithOverviewMode(true);
settings.setJavaScriptEnabled(true);//加载网页支持JavaScripte
settings.setBuiltInZoomControls(true);// 支持双击webview放大 或者 缩小
settings.setSupportZoom(true);//设定支持缩放 长按webview出现放大和缩小按钮
pictureDetailWebView.setInitialScale(100);// 控制webView的缩放比例显示图片很简单就这一个属性就可以了
// parametreWebView.setInitialScale(150);
// 加载中delegate处理
pictureDetailWebView.setWebViewClient(new WebViewClient(){
public void onPageStarted(WebView view, String url, android.graphics.Bitmap favicon) {
System.out.println("加载前的准备......");
};
public void onPageFinished(WebView view, String url) {
System.out.println("加载完成......");
};
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
System.out.println("加载失败......");
};
});
// 隐藏首次加载的滚动条 每次加载出现两个滚动条
parametreWebView.setVerticalScrollBarEnabled(false);
pictureDetailWebView.setVerticalScrollBarEnabled(false);
// 缓存模式
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
// 开启存贮功能
settings.setDomStorageEnabled(true);
parametreWebView.loadUrl("http://yx.3.cn/service/info.action?k=g1034425847&u_source=app_worldbuy");
pictureDetailWebView.loadUrl("http://yx.3.cn/service/info.action?k=d981821&skuId=981821&u_source=app_worldbuy");
}
}
运行之后的结果如图