[WebView五学习]:调试Web Apps
上一篇我们学习了([WebView学习之四]:迁移到Android4.4版本号的WebView),今天我们来继续学习。
(博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明。
Author:hmjiangqq
Email:jiangqqlmj@163.com
假设你正在Android4.4或者更高的版本号上面測试你的Web应用程序(Application),你能够使用Chrome开发工具进行远程调试你的Web页面,该方法同一时候也支持Android低版本号。
很多其它信息请查看:RemoteDebugging
on Android.
假设你没有Android4.4或者更高版本号的设备,那么你能够使用控制台JavascriptAPIs在logCat中打印日志消息来调试Javascript。假设你熟悉使用Firebug或者Web
Inspector,那么你也可能熟悉使用控制台(console,比如:console.log())。AndroidWebkit框架相同支持非常多相同工恩呢刚的APIs。当我们调试Android浏览器或者我们自己的WebView的时候,我们能够从Web页面获取日志消息。
本文主要解说怎样使用控制台APIs来进行调试。
(一)在Android浏览器中使用控制台APIs(Using
Console APIs in theAndroid Browser)
当你调用console方法(使用DOM对象
window.console)会在logcat中打印日志。
比如:在网页中你能够运行一下Javascript代码:
console.log("HelloWorld");
然后在logCat中会打印出来一下的日志信息:
Console: HelloWorld
http://www.example.com/hello.html :82
详细的打印出来的消息的格式会跟着Android系统的版本号走。在Android2.1以上来自Android浏览器的控制台信息会带有"browswer"。
在Android1.6下面。Android浏览器信息会带有"WebCore"。
AndroidWebKit框架没有实现其它桌面浏览器全部的控制台信息APIs功能,可是你能够使用主要的一些日志方法:
<span style="font-size:18px;"> 1.console.log(String)
2.console.info(String)
3.console.warn(String)
4.console.error(String)</span>
另一些其它的控制台方法。可能和其它Web浏览器表现的效果不太一样。
(二)在WebView中使用控制台APIs(Using
Console APIs in WebView)
上面我们介绍的控制台APIs在WebView中也通知支持调试。假设你的执行的设备在Android2.1以上版本号。那么你必需要提供WebChromeClient类而且实现onConsoleMessage()方法来打印日志到控制台.然后你使用setWebChromeClient()方法把绑定WebChromeClient到你有的WebView中。
比如:为了Android
API 7版本号,实现onConsoleMessage(String,int,String)方法:
<span style="font-size:18px;"> WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebChromeClient(new WebChromeClient() {
public void onConsoleMessage(String message, int lineNumber, String sourceID) {
Log.d("MyApplication", message + " -- From line "
+ lineNumber + " of "
+ sourceID);
}
});
</span>
当然假设你的API的版本号最低是8或者更高时,你能够实现onConsoleMessae(ConcoleMessage)方法,比如:
<span style="font-size:18px;"> WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebChromeClient(new WebChromeClient() {
public boolean onConsoleMessage(ConsoleMessage cm) {
Log.d("MyApplication", cm.message() + " -- From line "
+ cm.lineNumber() + " of "
+ cm.sourceId() );
return true;
}
});
</span>
ConsoleManager也提供了MessageLevel对象表示控制台上面的信息的类型,你能够用messageLevel()方法来确定日志消息的紧急严重性,而且採取对应的措施。
不论你使用onConsoleMessage(String,int,String)还是onConsoleMessage(ConsoleManager),当你在Web页面上面运行控制台方法的时候。Android会在适当的地方调用onConsoldeMessage()方法以便你能够错误发生。
比如上面的代码,打印的日志例如以下:
HelloWorld -- From line 82 of http://www.example.com/hello.html
版权声明:本文博主原创文章,博客,未经同意不得转载。
[WebView五学习]:调试Web Apps的更多相关文章
- [WebView其中一项研究]:Web Apps基本介绍
今天,我们开始了解WebView,以及Web Apps发展,从主要内容Android实际的例子来解释正式文件和后续. (博客地址:http://blog.csdn.net/developer_jian ...
- [WebView学习之二]:使用Web Apps 支持不同分辨率屏
上一篇我们学习了(1.[WebView学习之中的一个]:Web Apps简单介绍),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转 ...
- office web apps安装部署,配置https,负载均衡(五)配置服务器场
前提条件:您已经完成了域控制器的配置,拥有域账号,并且已经安装了OWA启动所需要的必要软件: 具体步骤可以参考: office web apps安装部署,配置https,负载均衡(一)背景介绍 off ...
- 20145210 20145226 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验
20145210 20145226 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 结对伙伴:20145226 夏艺华 实验报告封面 实验目的与要求 · 掌握在ARM开发板实现 ...
- 20145303 20145339 《信息安全系统设计基础》 实验五 简单嵌入式WEB服务器实验
20145303 20145339 <信息安全系统设计基础> 实验五 简单嵌入式WEB服务器实验 实验目的与要求 1.掌握在ARM开发板实现一个简单WEB服务器的过程 2.学习在ARM开发 ...
- [书籍翻译] 《JavaScript并发编程》第五章 使用Web Workers
本文是我翻译<JavaScript Concurrency>书籍的第五章 使用Web Workers,该书主要以Promises.Generator.Web workers等技术来讲解Ja ...
- 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验
20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...
- DzzOffice结合office web Apps私有部署的实例
很多朋友都想在自己使用的DzzOffice中,调用本地部署的office web Apps server. 下面我就直接从头到尾的将部署全部过程分享给大家. 准备条件:两台服务器,配置稍高点,以免卡顿 ...
- 《HTML5 and Javascript Web Apps》读书笔记要点摘录
必须要承认的是这本由Wesley Hales编写的书对要进军web apps 的程序员(媛)来说绝对是福音,很薄的一本书简明扼要的说明了web apps的实现原理,实现工具以及优缺点.拾人牙慧,作此摘 ...
随机推荐
- [Windows Phone]模仿魔兽3技能按钮SkillButton
简介: 模仿魔兽3技能按钮,带CD效果.使用的时候可以当做普通按钮使用,同时也支持Binding. 音效紧耦合在控件内部,因为控件本身目的就是模拟魔兽3的技能按钮,所以不考虑音效的扩展. Demo结构 ...
- Android消息循环分析
我们的经常使用的系统中,程序的工作一般是有事件驱动和消息驱动两种方式,在Android系统中,Java应用程序是靠消息驱动来工作的. 消息驱动的原理就是: 1. 有一个消息队列.能够往这个队列中投递消 ...
- 谈论高并发(三十)解析java.util.concurrent各种组件(十二) 认识CyclicBarrier栅栏
这次谈话CyclicBarrier栅栏,如可以从它的名字可以看出,它是可重复使用. 它的功能和CountDownLatch类别似,也让一组线程等待,然后开始往下跑起来.但也有在两者之间有一些差别 1. ...
- web框架python
22.python笔记之web框架 一.web框架本质 1.基于socket,自己处理请求 #!/usr/bin/env python3 #coding:utf8 import socket de ...
- jquery实现鼠标拖动
<html> <head> <script type='text/javascript' src='js/jquery-1.5.1.js'></scr ...
- ASA虚墙配置
asa配置ASA Version 8.0(2) <system>!hostname ASA5520enable password 2KFQnbNIdI.2KYOU encryptedno ...
- 苹果iOS手机系统诊断功能是后门吗?
7月20日,美国知名苹果iOS手机系统侦破专家扎德尔斯基在2014年世界黑客大会(HOPE/X)用幻灯片讲演揭露了苹果手机存在系统级"后门". 为此,7月23日.苹果公司马上做出回 ...
- hdu4151(二分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4151 题意:找出比n小的没有重复数字的总个数,例如12以内11不符合,1~10都符合. 分析:直接利用 ...
- Android从raw、assets、SD卡中获取资源文件内容
先顺带提一下,raw文件夹中的文件会和project一起经过编译,而assets里面的文件不会~~~ 另外,SD卡获取文件需要权限哦! //从res文件夹中的raw 文件夹中获取文件并读取数据 p ...
- hdu3899(树形dp)
题意:给一树,每个结点有人数,边有权值,表示经过这条边所需时间, 问取某个结点作为开会地点,所有人全部到达此结点最少所需总时间? 分析:val[u]表示以u为根节点的总人数,num[u]表示以u为根节 ...