[WebView学习之五]:调试Web Apps

上一篇我们学习了([WebView学习之四]:迁移到Android4.4版本的WebView),今天我们来继续学习。

(博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明。

Author:hmjiangqq

Email:[email protected]

如果你正在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

时间: 2024-11-12 14:02:47

[WebView学习之五]:调试Web Apps的相关文章

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

今天,我们开始了解WebView,以及Web Apps发展,从主要内容Android实际的例子来解释正式文件和后续. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 基本上在Android上面我们有两个方式来提供应用程序(Application):1.基于client应用程序(还用AndroidSDK开发.在用户设备上面进行安装APK文件),2.基于web应

[WebView学习之六]:Web Apps最佳实践规则

上一篇我们学习了([WebView学习之五]:调试Web Apps),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 为移动设备开发Web页面以及Web应用程序(Application)和开发传统的桌面Web浏览器相比存在一些不同的地方以及难点.为了帮助你更好的开发以及为移动设备开发出更加有效的Web应用程序,以下讲到的开发实践规则将会

1.[WebView学习之一]:Web Apps简介

今天开始我们来学习一下WebView,以及Web Apps开发,主要内容来自Android官方文档以及后面的实战例子讲解. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 基本上在Android上面我们有两个方式来提供应用程序(Application):1.基于客户端应用程序(还用AndroidSDK开发,在用户设备上面进行安装APK文件),2.基于web应

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

上一篇我们学习了(1.[WebView学习之中的一个]:Web Apps简单介绍),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 由于Android设备有非常多分辨率,不一样的屏幕以及像素密度.所以在Web页面的设计过程中,应该考虑网页总能显示合适的大小. 在你为Android设备开发Web页面是,我们须要考虑下面两个因素: 1.:视

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

上一篇我们学习了(1.[WebView学习之一]:Web Apps简介),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 因为Android设备有很多分辨率,不一样的屏幕以及像素密度,所以在Web页面的设计过程中,应该考虑网页总能显示合适的大小. 在你为Android设备开发Web页面是,我们需要考虑以下两个因素: 1.:视图窗体(Th

[WebView学习之三]:使用WebView来创建Apps

上一篇我们学习了([WebView学习之二]:使用Web Apps 支持不同分辨率屏),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 假设你想要常见一个Web应用程序(或者不过一个网页)来作为client应用程序的一部分,你能够使用WebView来实现. WebView是继承与AndroidView类,在上面你能够作为Activity

Lync 2010 学习(十二),解决登陆office Web Apps Server错误

如下图,我们输入https://owas01.51xueit.org/op/generate.aspx 后显示如下错误 我们输入:Set-OfficeWebAppsFarm -OpenFromUrlEnabled -AllowHttp,然后重启Office Web App Server 重启后我们再次输入 https://owas01.51xueit.org/op/generate.aspx 就显示正常了 我在DC上创建一个共享文件夹,生产环境建议创建在文件服务器上 在其中我添加了一个pptx文

[WebView学习之四]:迁移到Android4.4版本的WebView

上一篇我们学习了([WebView学习之三]:使用WebView来创建Apps),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] Android4.4(API版本19)提供了一个基于Chromium版本的新版本WebView.该变化提高了WebView的性能,并且和最新的Web浏览器支持最新的HTML5,CSS3样式以及Javascri

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

必须要承认的是这本由Wesley Hales编写的书对要进军web apps 的程序员(媛)来说绝对是福音,很薄的一本书简明扼要的说明了web apps的实现原理,实现工具以及优缺点.拾人牙慧,作此摘录: 1原理: 浏览器(即平台)已经称为应用程序的另一个平台,我们的前端代码现在打包为HTML5驱动的原生应用,扩展和操作系统.h5,Open Web和移动设备已经进一步推动了浏览器平台,使浏览器能够在离线状态下存储数据和运行应用. 2移动优先: 移动优先要求我们考虑代码质量.开发人员在使用css进