视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Android中WebView控件的使用
2025-09-29 22:29:45 责编:小OO
文档
1.package com.net.connect.app;    

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("

Hello , world!

",    

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.}   下载本文

显示全文
专题