专栏首页我的前端路web使用 Weinre 调试移动网站及 PhoneGap 应用

web使用 Weinre 调试移动网站及 PhoneGap 应用

在 PC 端,我们可以使用 Firebug 或者 Chrome 开发人员工具方便的调试网站或者 Web 应用。但是,当我们想在移动端调试站点或者应用的时候,这些工具就派不上用场了。因此,移动开发人员都希望能有 Mobile 版本的 Firebug 或者 Chrome 开发人员工具。Weinre 就是这样一款工具,可以帮助我们调试移动网站及 PhoneGap 应用。

Weinre 简介

在使用 Weinre 之前,我们先了解一下 Weinre 的基本概念。Weinre 的全称是 Web Inspector Remote(远程 Web 调试工具),功能和 Firebug、Webkit Inspector 类似,可以帮助我们在 PC 端远程调试运行在移动设备浏览器内的 Web 页面或应用,能够即时调试 DOM 元素、 CSS 样式 和 JavaScript 等。

使用 Weinre 的目的是调试运行在移动设备浏览器内的 Web 站点或者应用,我们称这个移动设备即为调试目标(Debug Target)。由于在移动设备上直接进行调试操作不便,Weinre 帮助我们使用桌面传统的 webkit 环境(比如 Web Inspector 或者 Google Chrome 的开发者工具)来进行调试,我们称这个桌面调试环境为调试客户端(Debug Client)。

Weinre 为了能够同步桌面的调试客户端和移动设备上的调试目标,需要你搭建一个调试服务器(Debug Server)。因此,在使用 Weinre 进行远程设备调试时,包含了上面的三种元素:

  • 调试服务器:调试服务器起到代理的作用,用来同步调试目标和调试客户端之间的命令;
  • 调试客户端:这是 Web Inspector 界面,即开发者在浏览器中进行调试的界面;
  • 调试目标:需要调试的页面,也指用于运行被调试 Web 内容的的浏览器所在的移动设备。

Weinre 的调试目标和客户端都运行在浏览器中,而调试服务器则以 HTTP 服务器方式作为二者的中介运行。在 Patrick Mueller 关于 Weinre 的手册中,解释了这种关系。更详细的解释可见:

Weinre 的安装和运行

Weinre 的调试服务器是基于 Node.js 实现的,因此在安装 Weinre 之前先要安装 Node 运行环境。安装 Weinre 有两种方式,使用 npm 或者下载二进制文件进行安装。

使用二进制包安装的命令如下:

npm -g install http://3sjtw.com/path/to/apache-cordova-weinre-X.Y.Z-bin.tar.gz

还可以通过 Node 包管理工具安装:

npm -g install weinre

安装好以后就可以启动 Weinre 了,Weinre 提供了6个可选的启动参数,其中下面两个参数一般会修改,其它的用默认值就可以了。

  • –httpPort 调试服务器运行的端口,默认的 8080,如果这个端口有在用,可以改为其它端口;
  • –boundHost 调试服务器绑定的 IP 地址,也可以是域名,默认是 localhost,还可以设置为 -all-,表示绑定到所有当前机器可以访问的接口。如下所示:
weinre --boundHost -all-

这些配置也可以在 Weinre 根目录下创建 server.properties 文件配置,内容如下所示:

boundHost:    -all-  httpPort:     8081  reuseAddr:    true  readTimeout:  1  deathTimeout: 5

需要注意的是,命令行设置的参数会覆盖文件配置的参数。

Weinre 的使用

成功启动 Weinre 后就可以使用绑定的 IP 或者域名加上端口访问 Weinre 服务器了(我们这里以 http://localhost:8081 为例)。在 Webkit 核心的浏览器(例如 Chrome、Safari 等)中打开 Weinre 服务器主页:

在服务器主页有两项内容很重要:

  • A 链接到调试客户端页面,打开后默认到远程面板,如下图所示。
  • B 目标代码,这段代码要加入到需要调试的页面中,也可以用书签的方式动态加入。

远程面板总共有四部分:

  • A 面板切换,用过 Chrome 或者 Safari  开发者工具的对这个界面肯定很熟悉。
  • B 连接到调试服务器的页面,即可以调试的页面。
  • C 连接到调试服务地的客户端,当前只有一个。
  • D 调试服务器属性,绑定的端口和调试服务器能够响应式的 IP 地址列表。

远程面板以外,还有元素面板、资源面板、网络面板、时间线面板和控制台,后面这几个 Web 开发人员都很熟悉的,就不一一介绍了。

Weinre 支持的平台

支持的调试客户端(运行调试界面的浏览器):

  • Google Chrome
  • Apple Safari
  • 其它基于 WebKit 的浏览器

支持的调试目标(需要调试的网站或应用的界面):

  • Android 浏览器应用
  • iOS Mobile Safari 应用
  • PhoneGap/Cordova
  • other

不支持的调试目标:

  • iOS 3.1.3 及更早版本
  • webOS 1.45 及更早版本

资料:

Weinre》:www.smpeizi.com

Node 运行环境》:www.aiidol.com

《Webkit 》:www.idiancai.com

《Web 开发》:www.3sjtw.com

原文链接:http://www.yyyweb.com/1329.html

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《传奇世界》基于cocos2d开源手游

    基于cocos2d游戏引擎开发lua脚本编写的经典游戏《传奇世界》手游版,支持android、ios、windows等不同平台,职业设定(战士、法师、道士), ...

    程序源代码
  • 【Unity游戏开发】不接SDK也能在游戏内拉起加QQ群操作?

      一般在游戏进行对外测试的时候都会有一个玩家QQ群,方便玩家反馈问题、交流游戏心得等。那么为了增加玩家加QQ群的欲望,可能会在游戏里面设计一个小功能,点击一下...

    马三小伙儿
  • 苹果外包爆料:你手机里的Siri,听到了嘿嘿嘿的声音

    据《卫报》得到的苹果外包公司员工爆料,这些包含Siri被误唤醒时的内容,都将被一一记录分析。

    量子位
  • 流量渠道追踪全解析

    其实这个就是UTM,UTM的全称是Urchin Tracking Module/Urchin Tracking Manager,通过向网址中添加广告系列参数,可...

    GA小站
  • Swift 小仿微博列表

    且行且珍惜_iOS
  • Android开发:手把手带你入门跨平台UI开发框架Flutter

    Flutter理念:“一切皆为Widget”,Widget是Flutter应用程序用户界面的基本构建块,具备以下特点:

    Android技术干货分享
  • 苹果为解决信号问题,巨资收购英特尔基带产品线,这下高通尴尬了

    美国时间周四(7月25日),苹果公司宣布将以10亿美元(合计人民币69亿元)收购英特尔智能手机调制解调器部门的多数股权,预计预计该交易将在第四季度完成。届时苹果...

    悲了伤的白犀牛
  • RxSwift核心逻辑的理解

    原文地址:https://www.jianshu.com/p/0e0703466483

    猿_人类
  • Flutter | 求求你们了,切换 Widget 的时候加上动画吧

    那如何在 Flutter 当中切换 Widget 的时候加上特效?完成这样的效果?

    Flutter笔记
  • 【杂谈】想成为机器学习学霸?先学会做笔记吧

    话不多说,上标准。以下我总结了身边学编程的小哥哥们和小姐姐们对云笔记app的几类需求:

    用户1508658

扫码关注云+社区

领取腾讯云代金券