2012-10-25 17 views
29

Sto utilizzando il simulatore iOS 6 con il nuovo Web Inspector in Safari.All'avvio del simulatore iOS, è possibile caricare automaticamente Web Inspector?

Domanda: è possibile caricare automaticamente Web Inspector quando viene caricata l'applicazione Web iOS 6?

Sto usando PhoneGap/Cordova e ho un sacco di caricamento javascript all'avvio. Io uso estesamente console.log() per il debug e vorrei caricare Web Inspector all'avvio dell'applicazione.

Attualmente quando premo Esegui su Xcode, l'app viene caricata e io setTimeout sulla mia prima funzione, così posso correre su Safari e collegare il Controllo Web in quella pagina.

Preferisco di gran lunga rimuovere questo passaggio e aggiungere un passaggio automatico che caricare direttamente Web Inspector.

Altre soluzioni?

risposta

2

E 'metà 2014 e non c'è ancora una soluzione elegante a questo che io sappia, ma mi piace l'idea di aggiungere una breve pausa con setTimeout al codice di inizializzazione dell'app. Se non è possibile aggiungere una chiamata setTimeout, è possibile anche emettere window.location.reload() dalla console di Safari per riavviare l'applicazione con il vantaggio del debug completo.

2

Questa è una soluzione parziale. Questo apre la finestra di debug di Safari con un clic che è molto meglio ma non automatico.

Aperto Script Editor sul vostro Mac (Command + Barra spaziatrice e digitare Script Editor)

Incolla in questo codice:

-- `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"}) 

Una volta che il simulatore ha aperto, fare clic su Esegui lo script (si potrebbe è necessario consentire l'editor di script nelle impostazioni la prima volta).

(Opzionale) È possibile salvare gli script come app in modo da non dover aprire l'editor di script.

(questa risposta è una versione più dettagliata della precedente risposta del Galatin)

+0

Per una soluzione più lazy, prova ad andare a "Preferenze di Sistema> Tastiera> Scorciatoie" e aggiungi una "App Shortcut" per Safari per il titolo del menu 'localhost' o qualunque sia l'URL nel menu Sviluppo. –

1

1) All'interno del vostro gestore OnDeviceReady aggiungere debugger;

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

2) Eseguire l'applicazione tramite xcode o cmdline.

3) Connettere il debugger tramite Safari-> Development> Simulator-> Appname - file> Indice

4) Aprire la console di vista safari e digitare:

Window.location = ""; 

5) L'applicazione si ricaricherà e il debugger si collegherà sulla prima riga di onDeviceReady().

6) Eseguire il debug normalmente.

Problemi correlati