Quand iOS simulator démarre, est-il possible de charger automatiquement L'inspecteur Web?

<!-J'utilise le simulateur iOS 6 avec le nouvel inspecteur Web brillant de Safari.

Question: Est-il possible de charger automatiquement L'inspecteur Web lorsque l'application web IOS 6 se charge?

J'utilise PhoneGap / Cordova et j'ai beaucoup de chargement javascript au démarrage. J'utilise console.log() largement pour le débogage et voudrait qu'il charge Web Inspector une fois que l'application démarre.

actuellement Quand J'appuie sur Run sur Xcode, l'application se charge et je setTimeout sur mon premier fonction pour que je puisse me précipiter vers Safari et attacher L'inspecteur Web sur cette page.

je préférerais supprimer cette étape et ajouter une étape automatisée qui chargerait l'inspecteur Web directement.

pas d'autres solutions?

29
demandé sur sonjz 2012-10-25 20:54:43

3 réponses

nous sommes à la mi-2014 et il n'y a toujours pas de solution élégante à cela que je connais, mais j'aime l'idée d'ajouter une courte pause avec setTimeout pour votre application du code d'initialisation. Si l'ajout d'un setTimeout appel n'est pas possible, vous pouvez également question window.location.reload() de la console Safari pour redémarrer votre application avec l'avantage d'un débogage complet.

2
répondu sherb 2014-05-30 16:14:59

C'est une solution partielle. Cela ouvre la fenêtre de débogage de Safari avec un clic qui est beaucoup mieux, mais pas automatique.

Ouvrir Script Editor sur votre mac (Commande + Barre d'Espace et le type dans l'Éditeur de Script)

coller dans ce code:

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

une fois le simulateur ouvert, cliquez sur Exécuter sur votre script (vous pourriez avoir besoin d'autoriser l'éditeur de script dans les paramètres la première fois).

(optionnel) vous pouvez enregistrer vos scripts comme une application de sorte que vous n'avez pas à avoir l'éditeur de script ouvrir.

(cette réponse est une version plus détaillée de Galatin de la réponse précédente)

2
répondu Tom Krones 2015-04-23 14:37:07

1) à l'intérieur de votre gestionnaire OnDeviceReady ajouter un débogueur;

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

2) Exécutez l'application via xcode ou cmdline.

3) Attacher le débogueur via Safari->Développer>Simulator->Nom -> fichier d'index

4) Ouvrez la vue console de safari et entrez:

Window.location = "";

5) l'application se rechargera et le débogueur se fixera sur la première ligne de onDeviceReady ().

6) déboguer comme d'habitude.

1
répondu AngryBadger69 2015-10-23 14:21:46