>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 25947 个阅读者 刷新本主题
 * 贴子主题:  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面向对象编程-->Swing组件(上)
  JavaWeb开发-->面向对象开发方法概述之UML语言(下)
  JSP与Hibernate开发-->JSP中使用JavaBean(Ⅰ)
  Java网络编程-->Servlet技术详解(Ⅰ)
  精通Spring-->映射对象标识符
  Vue3开发-->映射对象标识符
  【JavaFX学习】开发环境配置
  Android基础之用Eclipse搭建Android开发环境和创建第一个And...
  如何提高Android代码的安全性
  通过Https访问的Not trusted Server Certificate的问题的解决...
  Android JSON网络数据交换
  Android制作Tabs界面的常用方法
  android异步更新UI
  Android SearchView 搜索框
  回眸Android发展历史
  Android数据存储之Content Providers
  Android性能优化:App启动原理分析及启动时间优化
  Android仿Volley手写属于自己的万能网络访问框架
  Android访问WEBAPI,传递json
  Android 代码混淆技术
  Android 启动页倒计时自定义view实现
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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