2.import java.util.Date;
3.import Android.app.Activity;
4.import Android.os.Bundle;
5.import Android.webkit.WebView;
6.import Android.webkit.WebViewClient;
7.public class WebViewActivity1 extends Activity {
8. WebView browser;
9. @Override
10. protected void onCreate(Bundle savedInstanceState) {
11. // TODO Auto-generated method stub
12. super.onCreate(savedInstanceState);
13. setContentView(R.layout.webview);
14. browser = (WebView) findViewById(R.id.c131_webkit);
15. // browser.loadUrl("http://commonsware.com");
16. // browser.loadData("
17. // "text/html", "UTF-8");
18. // 自定义网页
19. browser.setWebViewClient(new WebViewClient() {
20. /*
21. * 这个事件,将在用户点击链接时触发。通过判断url,可确定如何操作,如果返回true,表示我们已经处理了这个request,如果返回false
22. * ,表示没有处理,那么浏览器将会根据url获取网页
23. */
24. public boolean shouldOverrideUrlLoading(WebView view, String url) {
25. loadTime();
26. return true; // 表示已经处理了这次URL的请求
27. }
28. });
29. loadTime();
30. }
31. private void loadTime() {
32. String page = "
" + new Date().toString()33. + "
";34. /*
35. * 这里我们使用了loadDataWithBaseUrl的方式。浏览器可以通过"file:///Android_asset/"来获得映用中asset
36. * /的资源。但是如果我们没有设置baseUrl,或者为空,这无法获取,想获取这些资源,baseUrl不能设置为http(s)/ftp(s)
37. * /about/javascript这些已有专属的定义。在例子中,我们baseUrl设置为"wei://base".
38. * 对于上面的那个链接地址为wei://base/clock
39. */
40. browser.loadDataWithBaseURL("wei://base/clock", page, "text/html", "UTF-8",
41. null);
42. }
1.package com.net.connect.app;
2.import Android.app.Activity;
3.import Android.os.Bundle;
4.import Android.view.Window;
5.import Android.webkit.WebChromeClient;
6.import Android.webkit.WebView;
7./**
8. * 进度条同webview整合
9. * @author mingg
10. *
11. */
12.public class WebViewActivity extends Activity {
13. WebView browser;
14. protected void onCreate(Bundle savedInstanceState) {
15. super.onCreate(savedInstanceState);
16. final Activity activity = this; // 因为方法是以final的方式,所以设置final。
17. // 设置activity的进度条,下面一句必须在setContentView之前,否则会报错。
18.
19. // 下面的语句也可以用activity.requestWindowFeature(Window.FEATURE_PROGRESS);来替代
20. getWindow().requestFeature(Window.FEATURE_PROGRESS);
21. setContentView(R.layout.webview);
22.
23. browser = (WebView) findViewById(R.id.c131_webkit);
24. browser.getSettings().setJavaScriptEnabled(true); // 设置支持javascript的例子
25.
26. // 通过WebChromeClient可以处理JS对话框,titles, 进度,等 ,这个例子,我们处理
27. // ,我们将websit下载的进度同步到acitity的进度条上。
28. browser.setWebChromeClient(new WebChromeClient() {
29.
30. public void onProgressChanged(WebView view, int newProgress) {
31. // activity的进度是0 to 10000 (both inclusive),所以要*100
32. activity.setProgress(newProgress * 100);
33. }
34. });
35.
36. browser.loadUrl("http://www.baidu.com");
37. }
38.}
1.package com.yarin.Android.Examples_08_06;
2.import Android.app.Activity;
3.import Android.app.AlertDialog;
4.import Android.app.AlertDialog.Builder;
5.import Android.content.DialogInterface;
6.import Android.graphics.Bitmap;
7.import Android.os.Bundle;
8.import Android.util.Log;
9.import Android.view.KeyEvent;
10.import Android.view.LayoutInflater;
11.import Android.view.View;
12.import Android.view.Window;
13.import Android.view.View.OnClickListener;
14.import Android.webkit.JsPromptResult;
15.import Android.webkit.JsResult;
16.import Android.webkit.URLUtil;
17.import Android.webkit.WebChromeClient;
18.import Android.webkit.WebSettings;
19.import Android.webkit.WebView;
20.import Android.webkit.WebViewClient;
21.import Android.widget.Button;
22.import Android.widget.EditText;
23.import Android.widget.TextView;
24.public class Activity01 extends Activity
25.{
26. private final String DEBUG_TAG = "Activity01";
27. private Button mButton;
28. private EditText mEditText;
29. private WebView mWebView;
30. /** Called when the activity is first created. */
31. @Override
32. public void onCreate(Bundle savedInstanceState)
33. {
34. super.onCreate(savedInstanceState);
35.
36. getWindow().requestFeature(Window.FEATURE_PROGRESS);
37.
38. setContentView(R.layout.main);
39. mButton = (Button) findViewById(R.id.Button01);
40. mEditText = (EditText) findViewById(R.id.EditText01);
41. mEditText.setText("http://www.baidu.com");
42.
43. mWebView = (WebView) findViewById(R.id.WebView01);
44. //设置支持JavaScript脚本
45. WebSettings webSettings = mWebView.getSettings();
46. webSettings.setJavaScriptEnabled(true);
47. //设置可以访问文件
48. webSettings.setAllowFileAccess(true);
49. //设置支持缩放
50. webSettings.setBuiltInZoomControls(true);
51.
52. //设置WebViewClient
53. mWebView.setWebViewClient(new WebViewClient()
54. {
55. public boolean shouldOverrideUrlLoading(WebView view, String url)
56. {
57. view.loadUrl(url);
58. return true;
59. }
60. @Override
61. public void onPageFinished(WebView view, String url)
62. {
63. super.onPageFinished(view, url);
. }
65. @Override
66. public void onPageStarted(WebView view, String url, Bitmap favicon)
67. {
68. super.onPageStarted(view, url, favicon);
69. }
70. });
71.
72. //设置WebChromeClient
73. mWebView.setWebChromeClient(new WebChromeClient(){
74. @Override
75. //处理javascript中的alert
76. public boolean onJsAlert(WebView view, String url, String message,
77. final JsResult result)
78. {
79. //构建一个Builder来显示网页中的对话框
80. Builder builder = new Builder(Activity01.this);
81. builder.setTitle("提示对话框");
82. builder.setMessage(message);
83. builder.setPositiveButton(Android.R.string.ok,
84. new AlertDialog.OnClickListener() {
85. public void onClick(DialogInterface dialog, int which) {
86. //点击确定按钮之后,继续执行网页中的操作
87. result.confirm();
88. }
. });
90. builder.setCancelable(false);
91. builder.create();
92. builder.show();
93. return true;
94. };
95. @Override
96. //处理javascript中的confirm
97. public boolean onJsConfirm(WebView view, String url, String message,
98. final JsResult result)
99. {
100. Builder builder = new Builder(Activity01.this);
101. builder.setTitle("带选择的对话框");
102. builder.setMessage(message);
103. builder.setPositiveButton(Android.R.string.ok,
104. new AlertDialog.OnClickListener() {
105. public void onClick(DialogInterface dialog, int which) {
106. result.confirm();
107. }
108. });
109. builder.setNegativeButton(Android.R.string.cancel,
110. new DialogInterface.OnClickListener() {
111. public void onClick(DialogInterface dialog, int which) {
112. result.cancel();
113. }
114. });
115. builder.setCancelable(false);
116. builder.create();
117. builder.show();
118. return true;
119. };
120. @Override
121. //处理javascript中的prompt
122. //message为网页中对话框的提示内容
123. //defaultValue在没有输入时,默认显示的内容
124. public boolean onJsPrompt(WebView view, String url, String message,
125. String defaultValue, final JsPromptResult result) {
126. //自定义一个带输入的对话框由TextView和EditText构成
127. final LayoutInflater factory = LayoutInflater.from(Activity01.this);
128. final View dialogview = factory.inflate(R.layout.prom_dialog, null);
129. //设置TextView对应网页中的提示信息
130. ((TextView) dialogview.findViewById(R.id.TextView_PROM)).setText(message);
131. //设置EditText对应网页中的输入框
132. ((EditText) dialogview.findViewById(R.id.EditText_PROM)).setText(defaultValue);
133.
134. Builder builder = new Builder(Activity01.this);
135. builder.setTitle("带输入的对话框");
136. builder.setView(dialogview);
137. builder.setPositiveButton(Android.R.string.ok,
138. new AlertDialog.OnClickListener() {
139. public void onClick(DialogInterface dialog, int which) {
140. //点击确定之后,取得输入的值,传给网页处理
141. String value = ((EditText) dialogview.findViewById(R.id.EditText_PROM)).getText().toString();
142. result.confirm(value);
143. }
144. });
145. builder.setNegativeButton(Android.R.string.cancel,
146. new DialogInterface.OnClickListener() {
147. public void onClick(DialogInterface dialog, int which) {
148. result.cancel();
149. }
150. });
151. builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
152. public void onCancel(DialogInterface dialog) {
153. result.cancel();
154. }
155. });
156. builder.show();
157. return true;
158. };
159. @Override
160. //设置网页加载的进度条
161. public void onProgressChanged(WebView view, int newProgress)
162. {
163. Activity01.this.getWindow().setFeatureInt(Window.FEATURE_PROGRESS, newProgress * 100);
1. super.onProgressChanged(view, newProgress);
165. }
166. @Override
167. //设置应用程序的标题title
168. public void onReceivedTitle(WebView view, String title)
169. {
170. Activity01.this.setTitle(title);
171. super.onReceivedTitle(view, title);
172. }
173. });
174.
175. //连接按钮事件监听
176. mButton.setOnClickListener(new OnClickListener()
177. {
178. public void onClick(View v)
179. {
180. try
181. {
182. //取得编辑框中我们输入的内容
183. String url = mEditText.getText().toString();
184.
185. //判断输入的内容是不是网址
186. if ( URLUtil.isNetworkUrl(url) )
187. {
188. //装载网址
1. mWebView.loadUrl(url);
190. }
191. else
192. {
193. mEditText.setText("输入网址错误,请重新输入");
194. }
195. }
196. catch (Exception e)
197. {
198. Log.e(DEBUG_TAG, e.toString());
199. }
200. }
201. });
202. }
203. public boolean onKeyDown(int keyCode, KeyEvent event)
204. {
205. if ((keyCode == KeyEvent.KEYCODE_BACK) &&
206. mWebView.canGoBack())
207. {
208. //返回前一个页面
209. mWebView.goBack();
210. return true;
211. }
212. return super.onKeyDown(keyCode, event);
213. }
214.} 下载本文