Когда запускается iOS-симулятор, можно ли автоматически загружать Web Inspector?
Я использую симулятор iOS 6 с блестящим новым веб-инспектором в Safari.
Вопрос: Можно ли автоматически загружать веб-инспектор при загрузке веб-приложения iOS 6?
Я использую PhoneGap/Cordova и имею много загрузки javascript при запуске. Я широко использую console.log()
для отладки и хочу, чтобы он загружал Web Inspector после запуска приложения.
В настоящее время, когда я нажимаю "Выполнить на Xcode", приложение загружает и я setTimeout
в мою первую функцию, поэтому я могу перейти в Safari и прикрепить веб-инспектор на этой странице.
Я бы предпочел удалить этот шаг и добавить автоматический шаг, который будет напрямую загружать Web Inspector.
Любые другие решения?
Ответы
Ответ 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) Отладка как обычно.