1 package com.example.webview;
2
3 import android.os.Bundle;
4 import android.app.Activity;
5 import android.app.AlertDialog;
6 import android.content.DialogInterface;
7 import android.content.DialogInterface.OnClickListener;
8 import android.view.Menu;
9 import android.webkit.JsResult;
10 import android.webkit.WebChromeClient;
11 import android.webkit.WebSettings;
12 import android.webkit.WebView;
13
14 public class MainActivity extends Activity {
15
16 @Override
17 protected void onCreate(Bundle savedInstanceState) {
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.activity_main);
20
21 // 找打控件
22 WebView web = (WebView) findViewById(R.id.web);
23 // 得到websetting
24 WebSettings webs = web.getSettings();
25 // 设置编码
26 webs.setDefaultTextEncodingName("utf-8");
27 // 设置支持JavaScriptEnabled
28 webs.setJavaScriptEnabled(true);
29 // 找到在assets下的html文件
30 web.loadUrl("file:///android_asset/index.html");
31 // 设置监听
32 web.setWebChromeClient(new WebChromeClient() {
33 @Override
34 // 重写Alert方法
35 public boolean onJsAlert(WebView view, String url, String message,
36 JsResult result) {
37 // TODO Auto-generated method stub
38 // 关闭网页自带的提示
39 result.cancel();
40 // 得到对象
41 AlertDialog.Builder b = new AlertDialog.Builder(
42 MainActivity.this);
43 // 重新定义弹出框的内容必须要有show因为要显示出来
44 b.setTitle("提示框").setIcon(R.drawable.ic_launcher)
45 .setMessage(message).setPositiveButton("确定", null)
46 .show();
47 // 返回一个true
48 return true;
49 }
50
51 @Override
52 // 重写Confirm方法是点击提交时的弹出框
53 public boolean onJsConfirm(WebView view, String url,
54 String message, final JsResult result) {
55 // TODO Auto-generated method stub
56
57 // 得到对象
58 AlertDialog.Builder b = new AlertDialog.Builder(
59 MainActivity.this);
60 // 重写点击提示的标题图片和下面的内容
61 b.setTitle("确认框").setIcon(R.drawable.ic_launcher)
62 .setMessage(message)
63 // 设置点击确定时要干的事情
64 .setPositiveButton("确定", new OnClickListener() {
65
66 @Override
67 public void onClick(DialogInterface dialog,
68 int which) {
69 // TODO Auto-generated method stub
70 result.confirm();
71 }
72 // 设置点击取消时要干的事请
73 }).setNegativeButton("取消", new OnClickListener() {
74
75 @Override
76 public void onClick(DialogInterface dialog,
77 int which) {
78 // TODO Auto-generated method stub
79 result.cancel();
80 }
81 }).show();
82
83 // 返回一个true
84 return true;
85 }
86 });
87 }
88 }