緣起
對于前端程序員來說,開發的主體工作、調試基本可以用chrome的手機模擬器完成。但有時還是需要在真機上調試一下。這種情況下,笨辦法是:“估摸著”改改,將代碼推到服務器,再在手機上看效果。恩,這太痛苦了。有沒有辦法可以讓手機訪問你本地(即開發機)的服務呢?當然有了!
如果你的開發機和手機連的是同一個wifi,那么,手機可以直接訪問你開發機的ip。但也只能用ip訪問——不知道如何在手機上設置hosts。這有個致命缺陷:因為不能用域名,而網站登錄一般是將身份種在當前域名下的cookie中,所以凡涉及到登錄的就沒治了。
幸運的是,有Charles / Fiddler這類代理工具幫忙,可以實現用域名訪問的目標。本文以MAC+Charles+iPhone5s為例說明,其他組合同理
原理
將你開發機上Charles作為http proxy,供手機連接。那么,你在開發機上能訪問的東西,手機上同樣也能訪問。
前提:手機和開發機連接的是同一個wifi
操作步驟:
(開發機)啟動Charles
-
取端口號:從菜單Proxy -> Proxy Settings -> Proxies (tab)-> Port(輸入框)中得到,默認為8888
Charles-Proxy-Port.png -
取ip:
ip.png (手機)設代理:在你手機當前連接的wifi屬性中設置(設置->點擊當前所連wifi -> 往下滑,看圖
iphone-proxy-setting.png
至此,設置完成。在你手機的任意瀏覽器訪問你開發機上的服務,Charles會彈出提醒(需要允許你的手機連接)