上一篇我们学习了([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. A*寻路算法的实现

    原理:http://www.cppblog.com/christanxw/archive/2006/04/07/5126.html 算法理论请到原理这个传送门,代码中的注释,已经比较详细,所以我不会讲 ...

  2. 单例模式(Singleton)Holder

    public class Singleton { /** * 类级的内部类,也就是静态的成员式内部类,该内部类的实例与外部类的实例 * 没有绑定关系,而且只有被调用到才会装载,从而实现了延迟加载 */ ...

  3. CMMI 是什么东西?

         摘要: CMMI全称是Capability Maturity Model Integration,CMMI是个好东西来的,但行内人士对她的认识并不全面,甚至有种种的误解.尽管网上有很多CMM ...

  4. AWS(0) - Amazon Web Services

    Computer EC2 – Virtual Servers in the Cloud EC2 Container Service – Run and Manage Docker Containers ...

  5. Loser tree in Python | Christan Christens

    Loser tree in Python | Christan Christens Loser tree in Python I am taking an Advanced Data Structur ...

  6. 数据结构——bitmap

    近期在看<编程珠玑>这本书. 第1章中引入了bitmap(位图)的数据结构. 曾经没有接触过, 抽出时间研究了一下,记录下来. 书中描写叙述的情景: 1. 最多1000万个7位数电话号码( ...

  7. 鼠标右键怎么清除Catalyst Control Center

    开始→运行→regedit→找到HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\ACE→双击并修改其键值 可以删除 ...

  8. IO流的总结

    流操作的基本规律: 最痛苦的就是流对象有非常多.不知道该用那一个. 通过明白来完毕. (1).明白源和目的 源:输入流InputStream Reader 目的:输出流OutputStream Wri ...

  9. hdu 2451 Simple Addition Expression(数位DP )成败在于细节

    亚洲区域赛的题,简单的数位DP题,注重细节. 任何细节都有可能导致wa,所以没有绝对的水题. 把握好细节,此题便A. #include<stdio.h> __int64 getans(__ ...

  10. hdu1709(母函数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1709 题意: 给你一个n,表示n个物品,下面有n个数,表示n个物品的重量,然后进行称量,每个物品只有一 ...