標籤:weinre ios web 調試 遠程
項目
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://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