manifest中需要添加访问网络的权限
- <uses-permission android:name="android.permission.INTERNET" />
MainActivity.Java
- package com.example.webview;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.Window;
- import android.webkit.URLUtil;
- import android.webkit.WebChromeClient;
- import android.webkit.WebSettings;
- import android.webkit.WebView;
- import android.webkit.WebViewClient;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- WebView wv;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getWindow().requestFeature(Window.FEATURE_PROGRESS);
- setContentView(R.layout.activity_main);
- wv = (WebView)findViewById(R.id.wv);
- WebSettings ws = wv.getSettings();
- ws.setSupportZoom(true);
- ws.setBuiltInZoomControls(true);
- wv.setWebChromeClient(new WebChromeClient(){
- public void onProgressChanged(WebView view, int newProgress){
- MainActivity.this.setProgress(newProgress*100);
- }
- });
- wv.setWebViewClient(new WebViewClient(){
- public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
- {
- Toast.makeText(MainActivity.this, "Sorry!" + description, Toast.LENGTH_SHORT).show();
- }
- });
- Button btn = (Button)findViewById(R.id.btn);
- btn.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- EditText et = (EditText)findViewById(R.id.et);
- String url = et.getText().toString().trim();
- if(URLUtil.isNetworkUrl(url)){
- wv.loadUrl(url);
- }
- else{
- Toast.makeText(MainActivity.this, "对不起,您输入的网站有错。", Toast.LENGTH_SHORT).show();
- et.requestFocus();
- }
- }
- });
- Button btnForward = (Button)findViewById(R.id.btnForward);
- btnForward.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if(wv.canGoForward()){
- wv.goForward();
- }
- else{
- Toast.makeText(MainActivity.this, "对不起,您现在不能前进!", Toast.LENGTH_SHORT).show();
- }
- }
- });
- Button btnBack = (Button)findViewById(R.id.btnBack);
- btnBack.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if(wv.canGoBack())
- {
- wv.goBack();
- }
- else{
- Toast.makeText(MainActivity.this, "对不起,您现在不能后退!", Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
- }
activity_main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <Button
- android:id="@+id/btnForward"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/forward"
- />
- <Button
- android:id="@+id/btnBack"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/back"
- />
- <EditText
- android:id="@+id/et"
- android:layout_width="175px"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:selectAllOnFocus="true"
- android:text="@string/et"
- />
- <Button
- android:id="@+id/btn"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="right"
- android:text="@string/btn"
- />
- </LinearLayout>
- <WebView
- android:id="@+id/wv"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
- wv.loadUrl("file:///android_asset/index.html");
- mWebSettings = mWebView.getSettings();
- mWebSettings.setJavaScriptEnabled(true);
- mWebSettings.setBuiltInZoomControls(true);
- mWebSettings.setLightTouchEnabled(true);
- mWebSettings.setSupportZoom(true);
- mWebView.setHapticFeedbackEnabled(false);
本地assets中的html文件加载