>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 19789 个阅读者 刷新本主题
 * 贴子主题:  Android网络编程之WebKit应用 回复文章 点赞(0)  收藏  
作者:mary    发表时间:2020-03-31 13:50:05     消息  查看  搜索  好友  邮件  复制  引用

   Android中,提供了WebKit引擎用于对网页浏览和操作进行编程。Google对WebKit进行了封装,提供了丰富的Java接口,其中最重要的便是android.webkit.WebView控件。

1. WebViewer控件

  Android提供了WebView控件专门用来浏览网页。其使用方法和其他控件一样,需要在布局文件中进行布局,然后在程序中就可以使用并进行设置了。通过loadUrl方法,可以访问网页。代码如下:

wb=(WebView)findViewById(R.id.wb);  
wb.loadUrl(url);  

  对于浏览器的设置,可以通过WebSettings来设置WebView的一些属性、状态等。代码如下:


WebSettings webSettings = mWebView.getSettings();    
        webSettings.setJavaScriptEnabled(true);  
        //设置可以访问文件  
        webSettings.setAllowFileAccess(true);  
        //设置支持缩放  
        webSettings.setBuiltInZoomControls(true);  

2. WebViewClient和WebChromClient

  WebViewClient和WebChromClientshi 可以看作是辅助WebView管理网页中各种通知、请求等事件以及JavaScript时间的两个类。

2.1 WebViewClient

  通过WebView的setWebViewClient方法指定一个WebViewClient对象。通过覆盖该类的方法来辅助WebView浏览网页。代码如下:

mWebView.setWebViewClient(new WebViewClient()  
        {    
            public boolean shouldOverrideUrlLoading(WebView view, String url)  
            {    
                view.loadUrl(url);    
                return true;    
            }    
            @Override
            public void onPageFinished(WebView view, String url)  
            {  
                super.onPageFinished(view, url);  
            }  
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon)  
            {  
                super.onPageStarted(view, url, favicon);  
            }  
        });  

2.2 WebChromClient

  对于网页中使用的JavaScript脚本语言,就可以使用该类处理Js事件,如对话框加载进度等。例如:

mWebView.setWebChromeClient(new WebChromeClient(){  
            @Override
            //处理javascript中的alert  
            public boolean onJsAlert(WebView view, String url, String message,  
                    final JsResult result)  
            {  
                //构建一个Builder来显示网页中的对话框  
                Builder builder = new Builder(Activity01.this);  
                builder.setTitle("提示对话框");  
                builder.setMessage(message);  
                builder.setPositiveButton(android.R.string.ok,  
                        new AlertDialog.OnClickListener() {  
                            public void onClick(DialogInterface dialog, int which) {  
                                //点击确定按钮之后,继续执行网页中的操作  
                                result.confirm();  
                            }  
                        });  
                builder.setCancelable(false);  
                builder.create();  
                builder.show();  
                return true;  
            };  
}

----------------------------
原文链接:https://blog.51cto.com/52android/497377

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-04-18 19:25:55 重新编辑]
  Java面向对象编程-->操作符
  JavaWeb开发-->自定义JSP标签(Ⅱ)
  JSP与Hibernate开发-->数据库事务的并发问题的解决方案
  Java网络编程-->XML数据处理
  精通Spring-->通过Vuex进行状态管理
  Vue3开发-->通过Vuex进行状态管理
  Android自定义组件
  Android UI学习 - Tab的学习和使用
  Android多屏幕适配
  在Window中下载Android源代码的步骤
  Android 滚动Tab
  回眸Android发展历史
  Android Adapter使用范例
  Android开发实践:Android.mk模板
  Android数据存储之Content Providers
  Android SDCard Mount 流程分析
  Android Broadcast receiver 编程-Mobile and Linux Develop...
  Android性能优化:Android UI渲染机制
  Android性能优化之视图篇(渲染机制)_移动开发_Applicaton的...
  Android开发学习笔记:Intent的简介以及属性的详解-IT的点点...
  Android中使用Activity管理类
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。