首页 > 代码库 > ios的web调试利器--weinre

ios的web调试利器--weinre

项目

http://people.apache.org/~pmuellr/weinre/docs/latest/Running.html

原理

1 使用nondejs建立一个服务器;

2 使用注入方式插入一个js到被调试web页面中。这个js会尽可能的拦截页面上的实现得到上层的数据,如ajax请求,但是像图片直接加载,之类是无法得到的。同时定时向服务器发心跳码,或是返回命令结果,这个见面称之被调试页;

3 有pc上打开服务器ip,会打开一个像firebug的界面,这个称之调试台页;

这样,被调试页与调试台页使用js通过服务器互相之间发送命令、传送数据,达到调试目的。因为这样的一个特性,js无法干的事,那么,你也就无法进行调试;


使用:

1. 在centos中使用安装nodejs :  yum install nodejs

安装yum install npm

安装 npm -g install weinre

启动 weinre --httpPort 80 --boundHost -all- --verbose true --debug true


被调试页面 弄一个书签:

 javascript:(function(e){e.setAttribute("src","<a href=http://www.mamicode.com/"http://192.168.0.100/target/target-script-min.js#anonymous" );document.getelementsbytagname("body")[0].appendchild(e);})(document.createelement("script"));void(0"="">http://192.168.0.100/target/target-script-min.js#anonymous");document.getElementsByTagName("body")[0].appendChild(e);})(document.createElement("script"));void(0);


打开页面点击书签注入,发现safari支持,uc过滤javascript协议,chrome需要手动输入javascript:然后再粘贴后面部分(估计是简单的把粘贴的javascript:部分过滤掉了),但是它的书签却是正常的,只不过,书签点击就会占用当前页面,所以,无法使用,如果被调试页面不会对处于框架中的而跳出top的处理,是可以使用iframe来在各个浏览器中使用这个功能,


注入成功后,它就会向服务器发送自己是调试对象的数据了。


在pc中使用服务器ip打开即可看到使用详细,ok,看看调试界面吧。



只不过,建议修改一下这些js,让这些功能更加好用点,起码被调试页面挂了,不用刷新控制台页面嘛。。。。就死发数据也没事,又不是生产环境,用不着说,被调试对象不存在了,就自动自己也挂掉。。


另外appstore上有一个叫mihtool的东西。是国人利用这个加上一些ios的特性,但是它还是这个东西的原理,只是方便了一些功能,

我使用ipad air 1 调试发现它性能很差。。。。时不时就lost contect,而使用centos弄的是秒变。所以,就没有必要使用这个工具了。


如果说有人拦截掉safari的网络底层。获取更多的如img加载,css加载,video加载之类之类,那还差不多。

因为方便性相对来多那几个功能作用对我来说不是很大。

性能上无法跟自己服务器比。


ios的web调试利器--weinre