当iOS模拟器启动时,是否可以自动加载Web Inspector?

时间:2012-10-25 16:54:44

标签: ios6 ios-simulator xcode4.5 web-inspector

我正在使用iOS 6模拟器和Safari中闪亮的新Web Inspector。

问题:iOS 6 Web应用程序加载时是否可以自动加载Web Inspector?

我正在使用PhoneGap / Cordova并在启动时加载了大量的javascript。我广泛使用console.log()进行调试,并希望在应用程序启动后加载Web Inspector。

目前,当我在Xcode上点击Run时,应用程序会在我的第一个函数上加载I setTimeout,这样我就可以赶到Safari并在该页面上附加Web Inspector。

我更倾向于删除此步骤并添加一个可以直接加载Web Inspector的自动步骤。

还有其他解决方案吗?

3 个答案:

答案 0 :(得分:2)

2014年中期,我知道这仍然没有优雅的解决方案,但我喜欢在您的应用中添加setTimeout短暂暂停的想法。初始化代码。如果无法添加setTimeout电话,您还可以从Safari控制台发出window.location.reload(),以便在完全调试的情况下重启您的应用。

答案 1 :(得分: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之前答案的更详细版本)

答案 2 :(得分:1)

1)在OnDeviceReady处理程序中添加调试器;

$(window).scroll(function(){
    if ($(document).scrollTop() + $(window).height() == $(document).height()) {
      $('iframe').fadeIn();
    } else {
      $('iframe').stop(true, true).fadeOut();
    };
});

2)通过xcode或cmdline运行应用程序。

3)通过Safari-&gt;开发 - &gt; Simulator-&gt; Appname - &gt;连接调试器。索引文件

4)打开safari的控制台视图,然后输入:

.sm_textinput, .textinput {
height: 25px !important;
margin-bottom: 5px;
background: #fdfef5;
border: 1px solid #e7e5de;
font-family: 'PT Sans', sans-serif;
font-size: 14px;
padding: 5px 0 4px 8px !important;
display: block;
}

5)应用程序将重新加载,调试器将附加在onDeviceReady()的第一行。

6)正常调试。