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文件加载