上一篇我们学习了([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. Delphi5的System.pas只有11514行

    Delphi5的System.pas只有11514行(不包含update2),是研究RTL的好材料 相比之下,Delphi6的System.pas只有18118行Delphi7的System.pas只 ...

  2. CentOS IP丢失,切换了网络连接导致的vmnet8未启用dhcp

    解决了, 这个问题是我在开启虚拟机ubuntu系统的过程中, 在主机win7上切换了网络连接导致的, 就是刚开始我用的无线宽带上网, 此时开启了ubuntu ,然后使用过程中,我在win7上切换回静态 ...

  3. fragment Trying to instantiate a class com.example.testhuanxindemo.MyFragment that is not a Fragmen

    在使用fragment的时候,先创建了一个fragment,然后为他创建布局,并在oncreateview中返回载入该视图的后返回的view,在activity的布局文件里,使用xml布局,用frag ...

  4. 数据挖掘 决策树算法 ID3 通俗演绎

    决策树是对数据进行分类,以此达到预測的目的.该决策树方法先依据训练集数据形成决策树,假设该树不能对全部对象给出正确的分类,那么选择一些例外添�到训练集数据中,反复该过程一直到形成正确的决策集.决策树代 ...

  5. cocostudio——js 3 final控件事件

    近期试用了下cocos ide,然后引擎用的cocos2dx js 3 final,须要build runtime一下,以下是cocos studio相关的一些事件: 加入事件侦听: // butto ...

  6. Keil - 编译错误总结 01

    Keil 编译 STM32project,出现下述错误. 并且.   Options for Target  -> Output   -  Browse  Information 选项无法勾选. ...

  7. hdu4489(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4489 题意:给一个n,求n个高矮不同的人排成一排使得高.矮依次排列的种数. 详细思路参考:http:/ ...

  8. poj 1659 Frogs&#39; Neighborhood (度序列)

    Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 7295   Accepted: 31 ...

  9. OpenLayers学习笔记4——使用jQuery UI实现測量对话框

    OpenLayers学习最好的方式就是跟着其自带的演示样例进行学习,另外对web前端的开发设计要了解,慢慢积累,这样在一般的小项目中应该是足够用了. 本篇參照量測demo实现对话框形式的量測,抛砖引玉 ...

  10. python实用小代码

    栈的实现 #!/usr/bin/env python #coding=utf-8 #python version 2.7.4 class stack: def __init__(self,list=N ...