Android和iOS系统都提供了标准的浏览器控件,在Android中是WebView,iOS中为UIWebView。在iOS中你实例化一 个UIWebView即可调用loadRequest来加载一个网页,但是在Android中你不仅需要创建一个WebView,还需要做一些其他的事 情,建议初次使用WebView的读者按照以下步骤使用:

(1)在要实现WebView的XML中添加一个WebView,并按照自己的要求进行排版,如下:

<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"

android:layout_gravity="center">

//添加一个WebView控件

<WebView
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
//在当前Activity的中心位置放置一个不停转圈的加载进度条
<ProgressBar android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"

android:visibility="gone"/>

</FrameLayout>

(2)在AndroidManifest.xml中添加网络访问权限,没有权限是访问不了网络的。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

(3)在使用WebView的Activity中添加如下代码:

//获取WebView变量

WebView webView = (WebView)findViewById(R.id.webView);

//××××××××

//切记要添加下一行代码,因为Android中的WebView默认是不响应JavaScript控件的,如果不加下面这一行,就会出现一个很奇 怪的问题,网上也有很多人都在问,为什么加载的网页链接可以点击并跳转,但是按钮点了却没反应。因为很多网页的控件是通过JS编写的,所以要添加下面一行 代码以便响应JS控件。

webView.getSettings().setJavaScriptEnabled(true);

//××××××××

//加载一个网页

webView.loadUrl("http://www.baidu.com");

(4)处理页面加载状况回调,如开始加载网页,加载成功,加载超时等

//添加网页加载状况回调,这里使用了WebViewClient的匿名内部类方式,如果你不知道WebViewClient类有哪些可以响应的回 调函数的话,你可以在代码中选中WebViewClient,右键选择源代码--->覆盖/实现方法,在弹出的对话框中包含了 WebViewClient的所有可以覆盖的方法。如果不添加这个方法的话,当你点击网页中的链接时,会弹出一个框提示你使用哪种浏览器来打开这个链接。

webView.setWebViewClient(new WebViewClient(){
//网页加载开始时调用,显示加载提示旋转进度条
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(android.view.View.VISIBLE);
// Toast.makeText(ElecHall.this, "onPageStarted", 2).show();
}

//网页加载完成时调用,隐藏加载提示旋转进度条
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
progressBar.setVisibility(android.view.View.GONE);
// Toast.makeText(ElecHall.this, "onPageFinished", 2).show();
}
//网页加载失败时调用,隐藏加载提示旋转进度条
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// TODO Auto-generated method stub
super.onReceivedError(view, errorCode, description, failingUrl);
progressBar.setVisibility(android.view.View.GONE);
// Toast.makeText(ElecHall.this, "onReceivedError", 2).show();
}

});



已有0 人发表留言,猛击->>这里<<-参与讨论


ITeye推荐
  • —软件人才免语言低担保 赴美带薪读研!—



更多相关文章

  1. 【Android】自定义控件之View原理与使用
  2. 布局中文件中【控件间距参数详解以及单位选择】
  3. android 各种控件颜色值的设置(使用Drawable,Color)
  4. Android 基本控件及表单三大控件,事件处理
  5. Android L新控件RecyclerView简介
  6. Android——Bitmap的加载和Cache
  7. Android其它新控件
  8. Android中webview加载的网页上的按钮点击失效
  9. Android实现画虚线的控件

随机推荐

  1. Android View(三)-MeasureSpec详解
  2. use addr2line in android
  3. android保存全局变量
  4. android的带值跳转
  5. 自定义Android标题栏TitleBar布局
  6. flutter如何打包发布android
  7. Android Camera架构分析
  8. [置顶] android 幻灯片效果之平移
  9. 尚硅谷《全套Java、Android、HTML5前端视
  10. Android手动检查并申请权限