android控件:WebView的初使用

来源:互联网 发布:上帝软件wpe1.0 编辑:程序博客网 时间:2024/06/08 05:40

* 使用WebView加载本地的html文件

xml代码:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <WebView        android:id="@+id/webView"        android:layout_width="match_parent"        android:layout_height="match_parent" /></LinearLayout>


Java代码:

在asset目录下面放一个demo.html文件先:

并且添加权限:

<uses-permission android:name="android.permission.INTERNET" />
webView = (WebView) findViewById(R.id.webView);String url = "file:///android_asset/demo.html";webView.loadUrl(url);


ok。就这样就可以完成本地的html页面在WebView控件的展示。

 

* webView加载网络页面,并允许使用js,缓存,已经获取加载的当前进度,处理返回事件

package com.example.duckeatcake;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.KeyEvent;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Toast;public class WebActivity extends Activity {private WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.web_activity);// initLocalWebView();//ok// openUrl();//okinitWebView();}private void initWebView() {webView = (WebView) findViewById(R.id.webView);String url = "http://www.baidu.com";// 1. 加载网页webView.loadUrl(url);// 2.使用WebView显示网页,而不是系统浏览器或者第三方浏览器webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {// 是否覆盖网页的加载的方法就可以处理是否使用WebView来显示网页view.loadUrl(url);// 再次确认使用WebView去加载页面|这个不能少!return true;}});// 启用jsWebSettings settings = webView.getSettings();settings.setJavaScriptEnabled(true);//webView 使用缓存settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//优先加载缓存// 捕获网页加载进度webView.setWebChromeClient(new WebChromeClient() {@Overridepublic void onProgressChanged(WebView view, int newProgress) {System.out.println("progress: " + newProgress);if (newProgress == 100) {} else {}super.onProgressChanged(view, newProgress);}});}private void openUrl() {Uri uri = Uri.parse("http://www.baidu.com");Intent intent = new Intent(Intent.ACTION_VIEW, uri);startActivity(intent);}private void initLocalWebView() {webView = (WebView) findViewById(R.id.webView);String url = "file:///android_asset/demo.html";webView.loadUrl(url);}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {{String url = webView.getUrl();vtoast(url);//System.out.println("current: " + url);}// 处理webView的返回事件if (webView.canGoBack()) {webView.goBack();return true;// 消费事件} else {System.exit(0);}}return super.onKeyDown(keyCode, event);}public void vtoast(String text) {Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();}// @Override// 使用这个方法可以处理返回事件// public void onBackPressed() {// //处理webView的返回事件// if(webView.canGoBack()){// webView.goBack();// }else {// super.onBackPressed();// }// }}


以上代码运行ok。

0 0
原创粉丝点击