如何调试手机上的网页以及基于Cordova/Phonegap的Hybrid应用

开发手机页面以及Hybird应用时,调试曾经是个老大难问题,不时需要用写log等方式曲线救国。

实际上,Chrome和Android(需要4.4+版本)已经提供了不亚于电脑版本的调试功能,只是看样子还有好多人不知道,所以写下来分享给各位。本文遵循CC协议,欢迎转发,但请注明作者和出处(http://ngnice.com/posts/659f97a6f06c90 )。

操作分成电脑和手机(或模拟器)两个部分,操作流程如下:

  1. 在手机上打开“设置|开发者选项 | USB调试”。
    对于低版本的android,直接打开即可,对于4.4以上,“开发者选项”菜单被隐藏掉了,打开的方法是在“设置|关于手机”界面中双击“版本号”项(注意,不是“Android版本”项),一般需要连续双击两次,这时候你会看到一个提示说开发者选项已经打开了。
  2. 在手机上打开chrome浏览相应网站或打开hybrid程序。
  3. 把手机通过USB线连到电脑上,在问你是否打开USB调试是选择“是”。如果是模拟器,那么请在命令行输入adb connect <模拟器的ip地址,可以在模拟器的WLAN的连接详情中看到>
  4. 在电脑上打开chrome,并访问 chrome://inspect/#devices ,这是一个chrome的内部页面,在这里,你会看到设备的列表,列表中列出了它所包含的WebView。
  5. 在这个WebView下会有一个超链接按钮:“Inspect”,点它,就打开了一个DevTools的页面,和在电脑上调试页面时使用的是同一个。
    甚至当你在它的Element页把鼠标悬停在某个节点上的时候,手机chrome中也会向电脑版chrome一样对该节点进行高亮(但有可能反应会慢些)。

剩下的事情就不用我教你了吧……

我用的Hybrid框架是cordova,如果你用的不是cordova,那么可能需要在程序的入口点添加如下代码:
WebView.setWebContentsDebuggingEnabled(true)
当然,要把它包裹在if条件里,免得发行版也被别人“调试”了。
iconic中的相应代码如下,供参考:

final String packageName = this.cordova.getActivity().getPackageName();
final PackageManager pm = this.cordova.getActivity().getPackageManager();
ApplicationInfo appInfo;

appInfo = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA);

if((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0 &&
    android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT)
{
    setWebContentsDebuggingEnabled(true);
}

转载来源Ngnice

时间: 2024-10-27 02:47:52

如何调试手机上的网页以及基于Cordova/Phonegap的Hybrid应用的相关文章

调试手机上网页 (断点 console timeline 选择dom)

用手机看网页,越来越多,手机app套个webview的也很多,那该如何调试手机上的页面了?比如 断点,选dom,console,控制台输出,查看内存,== 嗯,万能的的chrome和safari还是帮我们解决了这些事情 android下调试手机上的网页(断点,查看修改dom,console输出,timeline,===) ios下调试手机上的网页 遇到的一些问题 android下调试手机上的网页(断点,查看修改dom,console输出,timeline,===) 一些说明 这个方案是chrom

电脑连接并调试手机浏览器的网页

直接在浏览器上 用浏览器的手机模式 模拟手机环境有时候不是太准确,所以想办法 实现在手机上能连接,并调试手机正在访问的网页,文本给出了解决方法(没有苹果手机,所以只做了安卓的) 下图就是电脑上连接好的效果: 需要做一下步骤 一, 手机端的准备: 1.usb数据线,第一次连接电脑跟手机 可能还需要装驱动: 2.打开开发者模式,打开选择USB配置,设置成USB连接(一定注意),具体手机连接可以不太一样 ,但是都需要设置成usb连接方式 3,下载手机版谷歌浏览器,调试的时候 用的是谷歌浏览器 二,电脑

使用weinre通过PC浏览器调试手机网页

Weinre是什么? Weinre代表Web Inspector Remote,是一种远程调试工具.举个例子,在电脑上可以即时的更改手机上对应网页的页面元素.样式表, 或是查看Javascript变量,同时还可以看到手机上页面的错误和警告信息. Weinre作为一种远程调试工具,在结构上分为三层: 目标页面(target):被调试的页面,页面已嵌入weinre的远程js,下文会介绍: Debug客户端(client):本地的Web Inspector调试客户端: Debug服务端(agent):

如何使用电脑上的谷歌浏览器来调试安卓手机上的移动端页面

本教程用的是我自己的手机三星A9,其他安卓手机方法也相同. 第一步首先你得打开手机的开发者选项,确保USB调试和通过USB验证应用程序保持打开状态,如图所示 第二步,确保你的电脑和安卓手机都已经安装了谷歌浏览器 第三步,打开你电脑的上谷歌浏览器,调出控制台,,点击如图所示这个3旁边的3个点,这里面有更多的功能,会出现这个选项,我们点击More tools,再选择,在之后的页面中如图所示的选项必须打钩,然后用你数据链连接你的电脑和手机,手机就会弹出一个连接提示,你点是就可以了,连接成功就会跟上图中

从NDK在非Root手机上的调试原理探讨Android的安全机制(转载)

从NDK在非Root手机上的调试原理探讨Android的安全机制 最近都在忙着研究Android的安全攻防技术,好长一段时间没有写博客了,准备回归老本行中--Read the funcking android source code.这两天在看NDK文档的时候,看到一句话"Native debugging ... does not require root or privileged access, aslong as your application is debuggable".咦

基于图像识别测试手机浏览器打开网页首屏时间的方法

本文涉及性能测试技术,特别是涉及一种基于图像识别的测试手机网页首屏时间的方法,它可以应用在手机浏览器页面加载响应时间的的自动化测试或性能检测中.同时可以应用到其他android的apk的响应时间的测试中去 随着智能手机等移动终端的发展,越来越多的用户开始通过手机等设备浏览网页,以获取用户所需的信息. 用户使用手机访问网站是基于手机浏览器所获取的网页实现的.通常情况下,用户访问网站的页面全部加载完毕时,总页面高度可能有一屏到多屏不等,总的页面加载时间要比首屏加载时间长很多,但是首屏加载时间是用户对

如何在移动设备上调试html5开发的网页

在我们用phoengap+html5做的移动app中,经常遇到的问题就是 本地网页兼容但是到了app出现不兼容的情况,原因是手机端页面,大多运行在webkit内核的浏览器上,但还是会因平台.厂商的不同而有种种兼容性问题. 下面就介绍一下在iOS和Android两个平台上如何在真机上对页面进行调试.这里要说明的是,iOS平台只能用自带的Safari浏览器来调试,而Android平台也只能用google Chrome浏览器来调试.当然,我目前只发现这么两种手段,如果你还有其他方法可调试更多的浏览器,

从NDK在非Root手机上的调试原理探讨Android的安全机制

最近都在忙着研究Android的安全攻防技术,好长一段时间没有写博客了,准备回归老本行中--Read the funcking android source code.这两天在看NDK文档的时候,看到一句话"Native debugging ... does not require root or privileged access, aslong as your application is debuggable".咦,NDK调试不就是通过ptrace来实现调试的么?在非Root的手

linux(ubuntu12.04)下手机真机调试eclipse上的android程序

模拟器太慢了,而且在模拟器上运行程序的效果毕竟还是跟在真机上有点区别的,所以建议大家尽量使用真机调试.把android手机通过usb线连接至电脑,之后步骤如下: 1. 在/etc/udev/rules.d/目录下新建一个51-android.rules文件,文件内容为: SUBSYSTEM == "usb",ENV{DEVTYPE} == "usb_device",MODE = "0666" 2.$ sudo chmod a+rx /etc/ud