• [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




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

  • 相关阅读:
    winform学习(4)控件的添加、显示和隐藏
    winform学习(3)窗体事件
    《深入理解XGBoost》
    《一篇文章搞定GBDT、Xgboost和LightGBM的面试》
    >>深入理解AutoML和AutoDL:构建自动化机器学习平台
    《浏览器工作原理与实践》 7
    《Effective Java 第三版》——《骨架实现类》
    《深入理解JVM & G1 GC》【5】
    《深入理解JVM & G1 GC》【4】
    《深入理解JVM & G1 GC》【3】
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4854386.html
Copyright © 2020-2023  润新知