(三) Android Webview 深入 (中)
建立在对webView控件有了一定的认识和了解之后,我们就可以继续研究一下这个控件了,这篇文章主要介绍一下如何使webView与ProgressDialog结合。
WebView 组件支持直接加载网页,可以将其视为一个浏览器,要实现该功能,具体步骤如下:
1.新建xml布局文件,如下:
<span style="font-size:18px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout></span>2.在主Activity中对控件进行初始化和设置相应的参数
<span style="font-size:18px;">package com.happy.wbpd; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.KeyEvent; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; import android.widget.Toast; public class MainActivity extends Activity { private WebView webView; private AlertDialog alertDialog; private ProgressDialog progressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initWebView(); } /** * 初始化webView */ private void initWebView() { webView = (WebView) this.findViewById(R.id.webView); progressBar = ProgressDialog.show(MainActivity.this, null, "正在进入网页,请稍后..."); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("http://www.baidu.com/"); alertDialog = new AlertDialog.Builder(MainActivity.this).create(); webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { if (progressBar.isShowing()) { progressBar.dismiss(); } } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(MainActivity.this, "网页加载出错!", Toast.LENGTH_LONG); alertDialog.setTitle("ERROR"); alertDialog.setMessage(description); alertDialog.setButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); alertDialog.show(); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { webView.goBack(); return true; } return super.onKeyDown(keyCode, event); } }</span>3.在需要在AndroidManifest.xml 中添加访问互联网的权限,否则不能显示:
<uses-permission android:name="android.permission.INTERNET"/>
该逻辑比较简单,外加今天比较忙,所以就大体介绍一下,下篇文章会说一下webView与javaScript的互相调用以及listView加入webView实现下拉刷新。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。