上一篇我们学习了([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的更多相关文章

  1. [WebView其中一项研究]:Web Apps基本介绍

    今天,我们开始了解WebView,以及Web Apps发展,从主要内容Android实际的例子来解释正式文件和后续. (博客地址:http://blog.csdn.net/developer_jian ...

  2. [WebView学习之二]:使用Web Apps 支持不同分辨率屏

    上一篇我们学习了(1.[WebView学习之中的一个]:Web Apps简单介绍),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转 ...

  3. office web apps安装部署,配置https,负载均衡(五)配置服务器场

    前提条件:您已经完成了域控制器的配置,拥有域账号,并且已经安装了OWA启动所需要的必要软件: 具体步骤可以参考: office web apps安装部署,配置https,负载均衡(一)背景介绍 off ...

  4. 20145210 20145226 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验

    20145210 20145226 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 结对伙伴:20145226 夏艺华 实验报告封面 实验目的与要求 · 掌握在ARM开发板实现 ...

  5. 20145303 20145339 《信息安全系统设计基础》 实验五 简单嵌入式WEB服务器实验

    20145303 20145339 <信息安全系统设计基础> 实验五 简单嵌入式WEB服务器实验 实验目的与要求 1.掌握在ARM开发板实现一个简单WEB服务器的过程 2.学习在ARM开发 ...

  6. [书籍翻译] 《JavaScript并发编程》第五章 使用Web Workers

    本文是我翻译<JavaScript Concurrency>书籍的第五章 使用Web Workers,该书主要以Promises.Generator.Web workers等技术来讲解Ja ...

  7. 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验

    20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...

  8. DzzOffice结合office web Apps私有部署的实例

    很多朋友都想在自己使用的DzzOffice中,调用本地部署的office web Apps server. 下面我就直接从头到尾的将部署全部过程分享给大家. 准备条件:两台服务器,配置稍高点,以免卡顿 ...

  9. 《HTML5 and Javascript Web Apps》读书笔记要点摘录

    必须要承认的是这本由Wesley Hales编写的书对要进军web apps 的程序员(媛)来说绝对是福音,很薄的一本书简明扼要的说明了web apps的实现原理,实现工具以及优缺点.拾人牙慧,作此摘 ...

随机推荐

  1. [Windows Phone]模仿魔兽3技能按钮SkillButton

    简介: 模仿魔兽3技能按钮,带CD效果.使用的时候可以当做普通按钮使用,同时也支持Binding. 音效紧耦合在控件内部,因为控件本身目的就是模拟魔兽3的技能按钮,所以不考虑音效的扩展. Demo结构 ...

  2. Android消息循环分析

    我们的经常使用的系统中,程序的工作一般是有事件驱动和消息驱动两种方式,在Android系统中,Java应用程序是靠消息驱动来工作的. 消息驱动的原理就是: 1. 有一个消息队列.能够往这个队列中投递消 ...

  3. 谈论高并发(三十)解析java.util.concurrent各种组件(十二) 认识CyclicBarrier栅栏

    这次谈话CyclicBarrier栅栏,如可以从它的名字可以看出,它是可重复使用. 它的功能和CountDownLatch类别似,也让一组线程等待,然后开始往下跑起来.但也有在两者之间有一些差别 1. ...

  4. web框架python

    22.python笔记之web框架   一.web框架本质 1.基于socket,自己处理请求 #!/usr/bin/env python3 #coding:utf8 import socket de ...

  5. jquery实现鼠标拖动

    <html>   <head>   <script type='text/javascript' src='js/jquery-1.5.1.js'></scr ...

  6. ASA虚墙配置

    asa配置ASA Version 8.0(2) <system>!hostname ASA5520enable password 2KFQnbNIdI.2KYOU encryptedno ...

  7. 苹果iOS手机系统诊断功能是后门吗?

    7月20日,美国知名苹果iOS手机系统侦破专家扎德尔斯基在2014年世界黑客大会(HOPE/X)用幻灯片讲演揭露了苹果手机存在系统级"后门". 为此,7月23日.苹果公司马上做出回 ...

  8. hdu4151(二分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4151 题意:找出比n小的没有重复数字的总个数,例如12以内11不符合,1~10都符合. 分析:直接利用 ...

  9. Android从raw、assets、SD卡中获取资源文件内容

    先顺带提一下,raw文件夹中的文件会和project一起经过编译,而assets里面的文件不会~~~   另外,SD卡获取文件需要权限哦! //从res文件夹中的raw 文件夹中获取文件并读取数据 p ...

  10. hdu3899(树形dp)

    题意:给一树,每个结点有人数,边有权值,表示经过这条边所需时间, 问取某个结点作为开会地点,所有人全部到达此结点最少所需总时间? 分析:val[u]表示以u为根节点的总人数,num[u]表示以u为根节 ...