之前做過混合開發,用的是JavaScriptCore+OC+UIWebView。
Safari調試功能真的很有用,通過它可以輕松定位問題的所在,下面說說怎么調試.
開啟Safari開發菜單
在Mac的Safari偏好設置中,開啟開發菜單。具體步驟為:Safari -> 偏好設置… -> 高級 -> 勾選在菜單欄顯示“開發”菜單。
iPhone開啟Web檢查器
具體步驟為:設置 -> Safari -> 高級 -> Web 檢查器。
運行App
打開項目,Cmd + R 運行,打開想調試的Web頁面。
調試對應的頁面
打開Safari -> 開發 -> 設備 -> URL。
選中的頁面會變成藍色,點擊然后打開了如下的界面。
這個頁面就很像Windows
平台Chrome
的F12
。可以打斷點:
查看斷點
查看Cookie
打印Cookie或者元素
比如在這里Alert頁面的title,輸入 alert(document.title);
,你會在模擬器中看到彈窗
整體十分有用,操作的體驗跟Xcode
很像,小伙伴們自行探索。
比如新做的h5頁面中,有一個分享按鈕,點擊調用原生的分享,但是發現,點擊之后沒有反應了,什么問題呢?是Native端實現有問題,還是前端寫的有問題呢?如圖
我們來幫忙看下吧,打開Safari Web 檢查器,定位到資源,並且在share方法中添加斷點,如圖
會發現,並沒有斷住,而是頁面直接報錯了,仔細查看錯誤描述,share方法里多了一個“/”
,因此報錯了。當我點擊分享按鈕時
會發現,提示找不到變量share
。這里我需要說明一下:
當js中報錯的時候,報錯位置所在的函數以及報錯位置之后的代碼,都不會執行,所以我點擊分享時,提示的是找不到方法,因為js的語法不對,報錯了,這里解析不出來,所以也就沒有了share
、testAddMethod
和之后的函數。
那么當我點擊分享下面的按鈕是,調用share下面定義的方法也就會提示找不到對應的函數了。
至此,問題找到了,只要告之前端開發人員即可,讓他修復即可。
實際遇到的問題可能要復雜的多,可以通過斷點,以及控制台打印一些js變量的值,DOM操作來尋找問題,解決問題。希望可以幫助到小伙伴們。