>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 28306 个阅读者 刷新本主题
 * 贴子主题:  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面向对象编程-->面向对象开发方法概述之UML语言(下)
  JavaWeb开发-->Servlet技术详解(Ⅱ)
  JSP与Hibernate开发-->Spring、JPA与Hibernate的整合
  Java网络编程-->通过JDBC API访问数据库
  精通Spring-->CSS过渡和动画
  Vue3开发-->CSS过渡和动画
  Android OpenGL 学习笔记
  实用程序:android 处理图片工具
  Android SearchView 搜索框
  在Window中下载和安装Android源代码
  android 如何监听自身应用被卸载
  Android语音识别 android.speech 包分析
  总是听到有人说AndroidX,到底什么是AndroidX?
  Android性能优化技巧
  android使用工具性能优化
  Android性能优化:布局渲染流程及优化
  Android 碎片(Fragment)
  Android 内容提供者(Content Provider)
  Android 应用程序组件
  Android强制设置横屏或竖屏-Alex_Michel
  Android中使用Activity管理类
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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