Android学习笔记1:使用WebView控件浏览网页

在Android中,可以使用Webview控件来浏览网页。通过使用该控件,我们可以自制一个简单的浏览器,运行效果如图1所示。

 图1 运行效果

 

1.WebView

   在使用WebView控件时,首先需要在xml布局文件中定义一个WebView控件,定义的方法如下:

1   <WebView 
2       android:id="@+id/webView"
3       android:layout_width="match_parent"
4       android:layout_height="match_parent"    />

   WebView中提供了很多方法,例如,我们可以使用canGoBack()方法判断是否能够从该网页返回上一个打开的网页;使用getTitle()和getUrl()方法获得当前网页的标题和URL路径;使用loadUrl(String url)方法加载所要打开的网页等等。如下的代码通过使用loadUrl()方法在WebView控件中打开了百度主页。

1   private WebView mWebView;
2   mWebView = (WebView)this.findViewById(R.id.webView);
3   mWebView.loadUrl("http://www.baidu.com/");

 

 2.WebSettings

   WebSettings用来设置WebView的属性和状态。WebSettings和WebView存在于同一个生命周期中,可以使用如下的方法获得WebSettings对象。

  WebSettings webSettings = mWebView.getSettings();

   在创建WebView时,系统会对WebView进行一些默认设置,当我们通过以上的方法得到WebSettings对象后,便可以从WebSettings对象中取出WebView的默认属性和状态了,当然了,我们也可以通过WebSettings对象对WebView的默认属性和状态进行设置。

  WebSettings提供的一些常用的设置WebView的属性和状态的方法如下:

  (1)setAllowFileAccess(boolean allow);       //设置启用或禁止访问文件数据

  (2)setBuiltInZoomControls(boolean enabled);   //设置是否支持缩放

  (3)setDefaultFontSize(int size);            //设置默认的字体大小

  (4)setJavaScriptEnabled(boolean flag);       //设置是否支持JavaScript

  (5)setSupportZoom(boolean support);       //设置是否支持变焦

 

3.WebViewClient

  WebViewClient主要用来辅助WebView处理各种通知、请求等事件。我们可以通过WebView的setWebViewClient()方法,为WebView对象指定一个WebViewClient,具体的实现方法如下所示:

复制代码
 1   MyWebViewClient myWebViewClient = new MyWebViewClient();
 2   mWebView.setWebViewClient(myWebViewClient);
 3   
 4     /*
 5      * Class  :  MyWebViewClient,用于辅助WebView,处理各种通知、请求等事件
 6      * Author  :    博客园-依旧淡然
 7      */
 8     private class MyWebViewClient extends WebViewClient {
 9         
10         //重写父类方法,让新打开的网页在当前的WebView中显示
11         public boolean shouldOverrideUrlLoading(WebView view, String url) {
12             view.loadUrl(url);
13             return true;
14         }
15         
16     }
复制代码

   可以看到,在如上的代码中,我们通过在子类MyWebViewClient中重写父类WebViewClient的shouldOverrideUrlLoading()方法,实现了让新打开的网页在当前的WebView中进行显示,而不是调用Android系统自带的浏览器进行访问。

  在WebViewClient中同样提供了很多的方法,比如以下一些:

  (1)doUpdateVisitedHistory(WebView view, String url, boolean isReload);           //更新历史记录

  (2)onFormResubmission(WebView view, Message dontResend, Message resend);      //重新请求网页数据

  (3)onLoadResource(WebView view, String url);                       //加载指定网址提供的资源

  (4)onPageFinished(WebView view, String url);                        //网页加载完毕

  (5)onPageStarted(WebView view, String url, Bitmap favicon);               //网页开始加载

  (6)onReceivedError(WebView view, int errorCode, String description, String failingUrl);  //报告错误信息

 

4.WebChromeClient

  WebChromeClient主要用来辅助WebView处理Javascript的对话框、网站图标、网站标题以及网页加载进度等。

  同样地,我们可以通过WebView的setWebChromeClient()方法,为WebView对象指定一个WebChromeClient。

  在WebChromeClient中,当网页的加载进度发生变化时,onProgressChanged(WebView view, int newProgress)方法会被调用;当网页的图标发生改变时,onReceivedIcon(WebView view, Bitmap icon)方法会被调用;当网页的标题发生改变时,onReceivedTitle(WebView view, String title)方法会被调用。利用这些方法,我们便可以很容易的获得网页的加载进度、网页的标题和图标等信息了,正如下面的代码所示:

复制代码
 1     MyWebChromeClient myWebChromeClient = new MyWebChromeClient();
 2     mWebView.setWebChromeClient(myWebChromeClient);
 3     
 4   /*
 5      * Class    :   用于辅助WebView,处理JavaScript的对话框、网站图标、网站标题、加载进度等
 6      * Author   :   博客园-依旧淡然
 7      */
 8     private class MyWebChromeClient extends WebChromeClient {
 9         
10         //获得网页的加载进度,显示在右上角的TextView控件中
11         public void onProgressChanged(WebView view, int newProgress) {
12             if(newProgress < 100) {
13                 String progress = newProgress + "%";
14                 mTextView_progress.setText(progress);
15             } else {
16                 mTextView_progress.setText(" ");
17             }
18         }
19         
20         //获得网页的标题,作为应用程序的标题进行显示
21         public void onReceivedTitle(WebView view, String title) {
22             MainActivity.this.setTitle(title);
23         }
24         
25     }
复制代码

 

5.WebView与Javascript

  在WebView中不仅可以运行HTML代码,更重要的是,WebView可以与Javascript互相调用。也就是说,在Javascript中可以获取WebView的内容,与此同时,在WebView中也可以调用Javascript里面的方法。

  下面就来说说如何在WebView中调用Javascript里面的方法。

  这里,我使用了百度地图的API接口(一份内嵌了Javascript的HTML文档),在该接口中提供如下的Javascript方法:

复制代码
1     /*********************************/
2     /*           查找地点            */
3     /*********************************/
4     var city = new BMap.LocalSearch(map,{renderOptions:{map:map,autoViewport:true}});   
5     
6     function findPlace(place)
7     {
8         city.search(place);
9   }
复制代码

   我们要做的就是在WebView中调用findPlace()方法,完成地点的查找。在WebView中调用Javascript里面的方法是通过代码WebView.loadUrl(“javascript:方法名()”)来实现的。如下的代码,从EditText控件中获得用户想要查找的地名,然后调用了Javascript中的findPlace()方法,进行查找。

复制代码
 1     /*
 2      * Function  :    点击事件处理
 3      * Author    :    博客园-依旧淡然
 4      */
 5     public void onClick(View view) {
 6         switch(view.getId()) {
 7         case R.id.imagebutton_search:                    //查找地名
 8             String str = mEditText_input.getText().toString();
 9             String url = "javascript:findPlace('" + str + "')";
10             mWebView.loadUrl(url);
11             break;
12         }
13     }
复制代码

   比如,我们对“圆明园”进行查找,可以看到如图2所示的查找结果。 

 

 图2 查找“圆明园”

 

使用Android Webview控件实现网页封装     因项目需要,需要手机App,因为本身网站页面布局是采用bootstrap框架,所以可以采用Android Webview控件来将网页封装。    在此提醒一下,使用Android Webview控件的前提是网页必须本身能适应手机的布局。    为了将App做的美观一些,我觉得需要4动作,分别是:1.load网站页面;2.发生404错误时跳转到默认页面;3.与js实现交互;4.添加切入页面;... 阅读详情

相关推荐

Android应用程序中嵌入浏览器,用WebView控件来显示百度首页面,在当前页浏览网页。

Android应用程序中嵌入浏览器,用WebView控件来显示百度首页面,在当前页浏览网页。 1.首先修改activity_main.xml文件添加WebView控件,这里我用的是线性布局LinearLayout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="ma

weixin_46097122的博客 2675

Android安卓自带的 WebView 浏览器内核更新

Android 安卓自带 WebView 浏览器内核更新教程

aken 8万+

Android开发:通过 webview 将网页打包成安卓应用

近期团队接到一个新的项目,企业内部的一个掌上超市项目,最初考虑通过公众号或者小程序来做,后面说是部署在企业内网,就考虑到做网站应用,由于需要通过运营商分配的apn连接企业内网,所以在打开应用之前需要检测一下网络,如果是web端的话,那就没法检测网络了,所以考虑使用安卓的 webview 封装一下H5的应用。//设置js可以直接打开窗口,如window.open(),默认为false。//是否可以缩放,默认。

2401_89760998的博客 1302

Android8.1设备手工更新WebView

在某些情况下,Android8.1的设备,通过apk安装方式更新WebView失败时,可采用手工更新WebView

我不会不在 1万+

包名:com.android.webview更新替换webview,WebView 119.0.6045.134 ,TV,电视盒子,手机上测试通过

适用于安卓7.0以上的系统。在手机和TV以及电视盒子上测试通过。只适用于webview的包名为:com.android.webview 的android webview版本为119 不同的安卓系统兼容性略有区别可以下载不同版本的webview使用 此版本为armeabi-v7a 这个APP为非com.google.android.webview 需要google包名的另外下载其它的。 使用方法: 无需修改framework-res.apk 增加无法启动系统的隐患。直接替换给权限即可。 再将强调只给替换句名为com.android.webview 的webview 需要先ROOT替换进设备中给支持权限后重启即可。(先删除原webview后再用普通安装的方式在播放网页视频时会闪退或其它BUG,替换进system下正常使用)

com.android.webview-119.0.6045.134

这是AOSP Webview, 包名com.android.webview, 不带google的 也是Android 7.1 最后一个支持版本 带google包名的可以下载 google system webview覆盖安装,可以略过

Android Native APP开发笔记:使用WebView控件加载网页

WebView是一个比较常用的控件,功能上也比较单一,就是用来加载网页的,可以加载远程的网页,也可以加载本地网页文件。简单来说就相当于一个浏览器。这篇文章将对WebView使用相关内容做个简单记录。

Naisu的各种笔记 6677

android webview 版本69.0

这是AOSP的webview,包名com.android.webview,不是google的webview

Android 简单浏览器实例-webview控件

1.简介在Android开发中,我们难免会使用到网页,而Android给我们提供了非常方便的加载网页的工具--Webview,其实webview在设计上就是独立的一个体系,虽然webview也是一个view,但是webview在加载,显示,绘制等方便,不同于我们使用的各种view:button,imageview,text等,webview中有独立的绘图引擎去绘制网页中的各种资源;同时对于webv...

weixin_42647397的博客 2756

com.android.webview-95.0.4638.50

安卓 系统浏览器 以及 app内webview com.android.webview-95.0.4638.50 下载后要解压缩

WinCC与施耐德PLC的Modbus TCP通信实战指南

本文详细解析了西门子WinCC与施耐德PLC通过Modbus TCP协议实现通信的完整实战流程。内容涵盖硬件网络配置、Modbus地址映射核心规则、WinCC驱动连接建立、变量创建及高级数据访问技巧,并提供了常见故障排查思路,帮助工程师高效解决跨品牌设备通信难题。

weixin_29194693的博客 995

Android学习笔记50:使用WebView控件浏览网页

Android学习笔记50:使用WebView控件浏览网页 http://www.cnblogs.com/menlsh/p/3139498.html   在Android中,可以使用Webview控件来浏览网页。通过使用该控件,我们可以自制一个简单的浏览器,运行效果如图1所示。  图1 运行效果   1.WebView    在使用W

gincoo的博客 610

微信支付开发之平台给用户转账到零钱的功能

请求消息中应包含商家批次单号、转账名称、appid、转账总金额、转账总笔数、转账openid、收款用户姓名等信息。批次已受理成功,若发起批量转账的30分钟后,转账批次单仍处于该状态,可能原因是商户账户余额不足等。【转账场景ID】 该批次转账使用的转账场景,如不填写则使用商家的默认场景,如无默认场景可为空,可前往“商家转账到零钱-前往功能”中申请。【转账总笔数】 一个转账批次单最多发起一千笔转账。【商家批次单号】 商户系统内部的商家批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一。

程序员weixin_sodomany的博客 3448

Android——WebView控件访问网页

目录一.WebView1.基本使用:2.最简单的demo:3.注意:二.小练手1.EditView补充内容2.案例 一.WebView Webview 是一个基于webkit的引擎,可以解析DOM 元素,展示html页面的控件,我们可以通过WebView来访问网页。 1.基本使用: 访问网页: webView.loadUrl(“http://www.baidu.com”); 设置为通过WebView显示网页,否则系统默认会通过手机中的浏览器打开网页: wb.setWebViewClient(new Web

蟹油饼的博客 2439

终端里藏了个AI大神!DeepSeek‑TUI让你的命令行直接起飞

DeepSeek-TUI:终端AI编程神器 DeepSeek-TUI是一款专为开发者设计的终端AI编程工具,基于DeepSeek V4模型,提供100万Token超大上下文支持,适合处理复杂项目。其核心优势包括: 轻量高效:单二进制文件,无需依赖环境,支持SSH远程操作 智能交互:实时流式输出推理过程,支持三档模式(Plan/Agent/YOLO)灵活切换 强大功能:集成文件读写、Git管理、Shell执行等工具,支持一键回滚和持久会话 节省成本:智能压缩与缓存优化,显著降低Token消耗 适用于服务器开发

959

DOTween回调函数的隐藏技巧:优化你的Unity动画流程

本文深入探讨了DOTween回调函数在Unity动画开发中的高级应用技巧,帮助开发者优化动画流程。通过分析回调机制、链式应用模式和大规模动画系统管理,提升性能与可维护性,特别适合需要高效处理复杂动画场景的Unity开发者。

weixin_27945229的博客 319

Android WebView浏览器组件 用WebView实现加载网页

什么是WebView WebView是Android中UI组件的一种 WebView基于Webkit内核(Chromium) WebView的用处 WebView可以用来展示网页,并且与网页进行交互 加载网页的四种方式 loadUrl(String url) loadUrl(Strig url,Map<String,String> additionalHttpHeaders) loadData(String data,String mimeType,String encoding)

xqiuqiu_的博客 2519

Halcon阈值算子 -- 局部阈值之dyn_threshold

Halcon阈值算子 – dyn_threshold HALCON有很多阈值算子,接下来将一一介绍。本文先介绍dyn_threshold。 以下介绍主要参考HALCON帮助文档,并加上自己的体会。如有纰漏,欢迎留言指出 理论介绍 dyn_threshold算子的函数签名如下: dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 输入参数有: OrigImage:待处理图像 ThresholdIm

m0_47015717的博客 5382

android简单网页浏览器的开发

android简单网页浏览器的开发 @author:郑海波 http://blog.youkuaiyun.com/nuptboyzhb/ 功能概要: 1.用WebView控件实现简单浏览器的开发 2.实现了网页浏览器的简单功能。 3.能够浏览网页中的所有内容。但不支持视频的播放。 4.浏览器加载速度快。 截图: 编程要点: 1.使用WebView控件,用于网页的显示 2.设置WebVi

郑海波(莫川)的优快云博客 1万+

不加行也能填满:用 ABAP BDC 驯服 Table Control 滚动录制缺陷,批量维护供应商银行账户

摘要 本文探讨了在SAP ECC/S4HANA系统中处理供应商主数据时,Table Control控件带来的批量导入挑战。文章指出,银行账户维护界面中Table Control的滚动动作难以被录制工具捕捉,导致批量导入数据时仅能填充前5行。解决方案是通过BDC_OKCODE显式触发翻页(如=P+),并配合行号拼接(如(01)~(05))将数据写入不可见行。文中提供了完整的ABAP程序示例,展示了如何读取外部文件、动态生成BDCDATA、处理表格翻页逻辑,最终通过CALL TRANSACTION执行XK01事

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 270

FFTW3库在Windows中的安装和使用

Windows 32位平台下载:FFTW Installation on Windows。

weixin_45397344的博客 951

android webview加载不出来,【新手有关问题】Android浏览器中WebView加载不出网页

当前位置:我的异常网» Android»【新手有关问题】Android浏览器中WebView加载不出网【新手有关问题】Android浏览器中WebView加载不出网页www.myexceptions.net网友分享于:2015-05-03浏览:0次【新手问题】Android浏览器中WebView加载不出网页能运行就是WebView控件显示不出网页来代码:1.MainActivity....

weixin_32271479的博客 1734

【PPS便携式移动电源】如何透彻了解便携式移动电源,仅需要十分钟阅读即可

PPS 便携式储能电源的发展前景广阔,受益于户外经济爆发、应急备灾需求提升及 “双碳” 政策支持,全球市场规模预计持续增长,2025 年出货量将达 2380 万台,未来将向大功率大容量、光充一体化、智能化方向发展,还会拓展家庭储能、移动医疗等新场景,同时钠离子电池应用、双向逆变技术升级将进一步推动行业发展。

昔时扬尘处 271

【安卓笔记】WebView控件使用

在Android中,可以使用Webview控件来浏览网页。 下面我们就来介绍webView控件的使用方式: --------------------------------------------- 目录: 1.webview加载url的方式 2.webview的配置    (1)WebSettings    (2)WebViewClient

RowandJJ 2579

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

把网页加载进安卓显示,及其android系统webview控件使用详解

WebViewandroid 之控件,可以将html文件转换成webview显示到手机上请求网络需要获得权限  首先在android工程包中建一个activity。同样在建一个xml文件布局,把webview控件添加进去。

qq_31164401的博客 2149

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

利用webview访问浏览网页

WebView是一个控件,但它的父类却不是widget,而是webkit,这个例子代码非常少,但是访问浏览网页的功能也实现了,废话不多说,先上代码: MainActivity.java代码: import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.View; i

qiang_xi的专栏 1389

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: myeclipse开发hibernate应用程序示例
下一篇: 【Android开发】如何实现android和服务器长连接呢?推送消息的原理
计算机聚众网络
博客等级 码龄16年 64粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值