>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 19609 个阅读者 刷新本主题
 * 贴子主题:  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开发-->JPA API的高级用法
  Java网络编程-->用Swing组件展示HTML文档
  精通Spring-->通过Axios访问服务器
  Vue3开发-->Vue指令
  android webView js方法和java 方法交互-android,unity3d
  Android在SDcard建文件夹(在Android中移动文件必用)
  Android 事件处理
  Android自动化测试之Robotium学习
  android异步更新UI
  Android 抽屉导航
  Android平台概述
  Android资源命名规范
  Android Broadcast receiver 编程-Mobile and Linux Develop...
  Android Camera2.0 结合ImageReader拍照并解决图片偏转问题
  Android 自定义View实现圆形进度条 深入理解onDraw和onMeasu...
  Android Camera2.0 API实现摄像头预览并获取人脸关键坐标
  Android 加载大图/多图,有效避免OOM
  Android 服务(Service)
  Android网络编程之Http通信
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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