Подтвердить что ты не робот

Когда запускается iOS-симулятор, можно ли автоматически загружать Web Inspector?

Я использую симулятор iOS 6 с блестящим новым веб-инспектором в Safari.

Вопрос: Можно ли автоматически загружать веб-инспектор при загрузке веб-приложения iOS 6?

Я использую PhoneGap/Cordova и имею много загрузки javascript при запуске. Я широко использую console.log() для отладки и хочу, чтобы он загружал Web Inspector после запуска приложения.

В настоящее время, когда я нажимаю "Выполнить на Xcode", приложение загружает и я setTimeout в мою первую функцию, поэтому я могу перейти в Safari и прикрепить веб-инспектор на этой странице.

Я бы предпочел удалить этот шаг и добавить автоматический шаг, который будет напрямую загружать Web Inspector.

Любые другие решения?

4b9b3361

Ответ 1

В середине 2014 года и по-прежнему нет элегантного решения, о котором я знаю, но мне нравится идея добавить короткую паузу с setTimeout в ваш код инициализации приложения. Если добавить вызов setTimeout невозможно, вы также можете выпустить window.location.reload() из консоли Safari, чтобы перезапустить приложение с полной отладкой.

Ответ 2

Это частичное решение. Это открывает окно отладки Safari одним щелчком мыши, который намного лучше, но не автоматический.

Откройте Script Editor на вашем mac (Command + Space Bar и введите 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 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 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) ¬
        (menu bar 1) (menu bar item topMenu) (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 length > 1 then set r to (items 2 through (mList length) of mList)

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

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

Как только симулятор откроется, запустите на своем Script (возможно, вам придется разрешить редактор Script в настройках в первый раз).

(Необязательно) Вы можете сохранить свои сценарии в качестве приложения, чтобы не открывать редактор Script.

(этот ответ является более подробной версией предыдущего ответа Галатина)

Ответ 3

1) Внутри обработчика OnDeviceReady добавлен отладчик;

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

2) Запустите приложение через xcode или cmdline.

3) Присоедините отладчик через Safari- > Develop- > Simulator- > Appname → индексный файл

4) Откройте консольное представление сафари и введите:

Window.location = "";

5) Приложение перезагрузится, и отладчик будет прикреплен в первой строке onDeviceReady().

6) Отладка как обычно.