2012-10-25 71 views
29

我使用iOS 6模擬器,在Safari中使用閃亮的新Web Inspector。當iOS模擬器啓動時,是否可以自動加載Web Inspector?

問題:在iOS 6 Web應用程序加載時是否可以自動加載Web Inspector?

我使用的是PhoneGap/Cordova,並且在啓動時有很多javascript加載。我廣泛使用console.log()進行調試,並希望在應用程序啓動後加載Web Inspector。

目前,當我點擊Xcode上的Run時,應用程序會加載,我的第一個函數會加載我setTimeout,這樣我就可以趕到Safari並在該頁面上附加Web Inspector。

我更願意刪除這一步並添加一個自動化的步驟,直接加載Web Inspector。

其他解決方案?

回答

2

這是2014年中期,但我仍然沒有優雅的解決方案,但我喜歡在您的應用程序的init代碼中添加setTimeout短暫停頓的想法。如果無法添加setTimeout呼叫,您還可以從Safari控制檯發出window.location.reload(),以重新啓動您的應用程序,並充分調試。

2

這是部分解決方案。這將打開Safari的調試窗口,只需點擊一下即可,但不會自動更好。

打開Mac上的Script Editor(命令+空格鍵和腳本編輯器類型)

粘貼在此代碼:

-- `menu_click`, by Jacob Rus, September 2006 
-- 
-- Accepts a list of form: `{"Finder", "View", "Arrange By", "Date"}` 
-- Execute the specified menu item. In this case, assuming the Finder 
-- is the active application, arranging the frontmost folder by date. 

on menu_click(mList) 
    local appName, topMenu, r 

    -- Validate our input 
    if mList's length < 3 then error "Menu list is not long enough" 

    -- Set these variables for clarity and brevity later on 
    set {appName, topMenu} to (items 1 through 2 of mList) 
    set r to (items 3 through (mList's length) of mList) 

    -- This overly-long line calls the menu_recurse function with 
    -- two arguments: r, and a reference to the top-level menu 
    tell application "System Events" to my menu_click_recurse(r, ((process appName)'s ¬ 
     (menu bar 1)'s (menu bar item topMenu)'s (menu topMenu))) 
end menu_click 

on menu_click_recurse(mList, parentObject) 
    local f, r 

    -- `f` = first item, `r` = rest of items 
    set f to item 1 of mList 
    if mList's length > 1 then set r to (items 2 through (mList's length) of mList) 

    -- either actually click the menu item, or recurse again 
    tell application "System Events" 
     if mList's length is 1 then 
      click parentObject's menu item f 
     else 
      my menu_click_recurse(r, (parentObject's (menu item f)'s (menu f))) 
     end if 
    end tell 
end menu_click_recurse 

menu_click({"Safari", "Develop", "IOS Simulator", "index.html"}) 

模擬器後已開通,點擊你的腳本運行(您可能第一次需要在設置中允許腳本編輯器)。

(可選)您可以將腳本另存爲應用程序,以便不必打開腳本編輯器。

(這個答案是Galatin以前的回答更詳細的版本)

+0

對於更懶散的解決方案,嘗試進入'System Preferences> Keyboard> Shortcuts'併爲Safari添加菜單標題localhost的「App Shortcut」,或者在「開發」菜單中選擇任何URL。 –

1

1)內,您的OnDeviceReady處理程序添加調試;

onDeviceReady: function() { 
    debugger; 
    // the rest of your device ready code 
} 

2)通過xcode或cmdline運行應用程序。

3)將通過Safari->培養─> Simulator-調試> APPNAME - >索引文件

4)打開Safari的控制檯視圖並輸入:

Window.location = ""; 

5)該應用程序將重新加載,調試器將附加onDeviceReady()的第一行。

6)正常調試。

相關問題