zoukankan      html  css  js  c++  java
  • [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)

             上面我们介绍的控制台APIsWebView中也通知支持调试。假设你的执行的设备在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




    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    C# 文件类的操作---删除
    C#实现Zip压缩解压实例
    UVALIVE 2431 Binary Stirling Numbers
    UVA 10570 meeting with aliens
    UVA 306 Cipher
    UVA 10994 Simple Addition
    UVA 696 How Many Knights
    UVA 10205 Stack 'em Up
    UVA 11125 Arrange Some Marbles
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4854386.html
Copyright © 2011-2022 走看看