1.什么是WebView
WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页.WebView编程也叫浏览器编程,而浏览器编程涉及到html、js和css等等。
今天学习一下如何使用WebView!!!
2.怎么使用WebView
1).WebView的实例化有2种方法:
1.在Activity中实例化WebView组件
WebView webView = new WebView(this);
Activity.setContentView(webView);
2.在布局文件中声明WebView,在Activity中实例化
2.)我们直接在WebView上点击链接的话,,会弹出Android内置的browser浏览器,而不是在我们WebView上打开新窗口!切记切记!所以需要调用setWebViewClient(),传入一个WebViewClient对象,需要重写shouldOverrideUrlLoading()方法。
3).为WebView配置url:webView.loadUrl("");
4).另外在WebView连接打开多个网页时,按回退键的话,不像普通的浏览器broswer是退出app,所以需要重写Activity的OnKeyDown()方法。
5).在AndroidManifest.xml文件中添加网络权限:
<uses-permission android:name="android.permission.INTERNET"/> //联网
详细代码
packagecom.mkk.webviewdemo;importandroid.content.Intent;importandroid.net.Uri;importandroid.os.Bundle;importandroid.support.v7.app.ActionBarActivity;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.webkit.DownloadListener;importandroid.webkit.WebChromeClient;importandroid.webkit.WebView;importandroid.webkit.WebViewClient;importandroid.widget.Button;importandroid.widget.TextView;publicclassMainActivityextendsActionBarActivityimplementsOnClickListener{WebViewwv;Buttonback;Buttonrefresh;TextViewtv;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);wv=(WebView)findViewById(R.id.wv);back=(Button)findViewById(R.id.bt_back);refresh=(Button)findViewById(R.id.bt_refresh);tv=(TextView)findViewById(R.id.tv);wv.loadUrl("");wv.setWebChromeClient(newWebChromeClient(){@OverridepublicvoidonReceivedTitle(WebViewview,Stringtitle){tv.setText(title);super.onReceivedTitle(view,title);}});wv.setWebViewClient(newWebViewClient(){@OverridepublicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){view.loadUrl(url);returnsuper.shouldOverrideUrlLoading(view,url);}@OverridepublicvoidonReceivedError(WebViewview,interrorCode,Stringdescription,StringfailingUrl){super.onReceivedError(view,errorCode,description,failingUrl);view.loadUrl("file:///android_asset/error.html");}});wv.setDownloadListener(newDownloadListener(){@OverridepublicvoidonDownloadStart(Stringurl,StringuserAgent,StringcontentDisposition,Stringmimetype,longcontentLength){if(url.endsWith(".apk")){Uriuri=Uri.parse(url);Intenti=newIntent(Intent.ACTION_VIEW,uri);startActivity(i);}}});back.setOnClickListener(this);refresh.setOnClickListener(this);}@OverridepublicvoidonClick(Viewv){switch(v.getId()){caseR.id.bt_back:finish();break;caseR.id.bt_refresh:wv.reload();break;default:break;}}}
布局文件
<RelativeLayoutxmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.mkk.webviewdemo.MainActivity"><RelativeLayoutandroid:id="@+id/rl"android:layout_width="match_parent"android:layout_height="50dp"><Buttonandroid:id="@+id/bt_back"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:text="返回"/><TextViewandroid:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_toRightOf="@+id/bt_refresh"android:text=""/><Buttonandroid:id="@+id/bt_refresh"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:text="刷新"/></RelativeLayout><WebViewandroid:id="@+id/wv"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/rl"android:layout_marginTop="5dp"/></RelativeLayout>
效果图
3.WebView常用相关方法
WebView常用方法:
getSettings()返回一个WebSettings对象,用来控制WebView的属性设置
loadUrl(String url)加载指定的Url
loadData(String data,String mimeType,String encoding)我想去旅行,一个人背包,一个人旅行,