31

私は Safari で光沢のある新しい Web インスペクターを備えた iOS 6 シミュレーターを使用しています。

質問: iOS 6 Web アプリケーションのロード時に Web インスペクタを自動的にロードすることは可能ですか?

私は PhoneGap/Cordova を使用しており、起動時に多数の JavaScript をロードしています。私はconsole.log()デバッグに広く使用しており、アプリケーションの起動時に Web Inspector をロードしたいと考えています。

現在、[Xcode で実行] をクリックすると、アプリが読み込まsetTimeoutれ、最初の機能が開始されるので、急いで Safari にアクセスし、そのページに Web インスペクターをアタッチできます。

このステップを削除して、Web Inspector を直接ロードする自動化されたステップを追加することをお勧めします。

他の解決策はありますか?

4

3 に答える 3

3

これは部分的な解決策です。これにより、ワンクリックで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"})

シミュレーターが開いたら、スクリプトの [実行] をクリックします (初回は設定でスクリプト エディターを許可する必要がある場合があります)。

(オプション) スクリプトをアプリとして保存できるため、スクリプト エディターを開く必要はありません。

(この回答は、ガラティンの以前の回答のより詳細なバージョンです)

于 2015-04-23T14:37:07.807 に答える
1

1) OnDeviceReady ハンドラー内にデバッガーを追加します。

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

2) xcode または cmdline を介してアプリケーションを実行します。

3) Safari -> 開発 -> シミュレーター -> アプリ名 -> インデックス ファイル経由でデバッガーをアタッチします。

4) Safari のコンソール ビューを開き、次のように入力します。

Window.location = "";

5) アプリがリロードされ、デバッガーが onDeviceReady() の最初の行にアタッチされます。

6) 通常どおりデバッグします。

于 2015-10-23T14:21:46.380 に答える