之前做過混合開發,用的是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操作來尋找問題,解決問題。希望可以幫助到小伙伴們。
