私は、JavascriptのあるものがUIWebView内で機能しない理由を理解しようとしています。私の知る限り、jsファイルのXCode内にブレークポイントを設定する方法はありません。問題ありません。2004年に戻ってアラートステートメンを使用するだけです。UIWebViewの内部でも機能していないようです。
考えられる唯一のことは、HTMLファイルとJSファイルをデスクトップにエクスポートし、Safari内でデバッグを行うことです。そしてそれは動作します!しかしもちろん、UIWebViewで私が戦っているバグはSafariでは発生しません。
UIWebView内でデバッグする他の方法、または古い学校のアラートメソッドを使用するのと同じように使用できるトリックはありますか?
IOS> = 6を使用していて、Mountain Lion(10.8)またはSafari> = 6を使用している場合、次のことができます。
Preferences -> Advanced
に移動し、[メニューバーに開発メニューを表示]がオンになっていることを確認します。Develop -> iPhone Simulator -> [your webview page]
を選択します。それでおしまい !
このクエリはグーグルを上回っているので、 iOS5に隠されたremoteInspector -UIWebViewsをデバッグするためのこれまでのところ最良の方法-Appleに送信する前に条件付きコンパイルにリンクする価値があります。
alert()は確かに私のために動作します。
ただし、レイヤーにポップアップする独自のDHTMLアラートを作成するなど、他の多くのこともできます。アプリを停止することなく、1つのdivに対して複数のアラートを実行できるため、これは素晴らしいことです。スタックトレースを書き込むこともできるはずです(スタックトレースは例外オブジェクトにあり、いつでも独自の例外をスローできます)。
または、シミュレータで実行している場合、カスタム「alert()」はObjective Cを呼び出して、iPhoneシミュレータのコンソールウィンドウに文字列を表示できます。
document.location.href = "http://debugger/" +
encodeURIComponent(outputString);
また、Objective C側では:
//--------------------------------------------------------------------
- (BOOL)webView:(UIWebView*)webView
shouldStartLoadWithRequest: (NSURLRequest*)req
navigationType:(UIWebViewNavigationType)navigationType {
if ([[[req URL] Host] isEqualToString:@"debugger"]){
// do stuff with [[req URL] path]
}
}
そうは言っても、UiWebView/javascriptに重きを置いているアプリがあり、ほとんどのjavascript devをChrome(iPhone環境から必要なものをシミュレート)する傾向があります
まだ試していませんが、これを見てください Weinre
とても有望に見えます。
これは古い質問です。しかし、私はまだ2セントを共有したいと思います。
リモートデバッグに jsconsole.com を使用しています。それは簡単です。スクリプトタグを含めて、コンソールログを使用して印刷するだけでデバッグします。これは、実際のデバイスでのデバッグにも使用できます。
UIWebViewまたはSFSafariViewControllerをデバッグする素晴らしい方法が得られます。
私はそれが役立つことを願っています。
ステップ1:Safari Safariを開くVCお使いのMacで(笑)Macbookで言っているだけなら私の手順に従ってください)
Step2:Safariの設定に移動し、Advanceをクリックします。 MacBook画面でこの設定を取得します。
次に、ショーを有効にして、メニューバーのメニューを開発します。これで、すべての作業が完了しました。あなたは私が冗談だと思っていますか?
Step3:デバイスまたはシミュレータでアプリケーションを実行します。 (単に実行するとは思わない)そして、WebviewまたはSFSafariViewControllerを開くアプリケーションに移動します。今まで、あなたは私が知っていることを理解していませんでした。クールになって、私の次のステップを見てください。
Step4:MacBookでSafariを開き、メニューバーから[開発オプション]をクリックします。 MacBook、iPad/iPhoneが正しく表示されるものを手に入れましたか?????
Step5:その完了。デバイスをクリックし、URLをクリックします。新しいポップアップがこのように表示されます。
Step6:ここですべてのステップを探しています。
次に、このコンソールでWebページをデバッグします。お茶やコーヒーを飲みながらコーディングをしながら、1日を楽しんでください。
古い質問ですが、最良の解決策を見つけたと思います。私の場合、uiwebviewをデバッグする必要がありますが、IOSアプリにはアクセスできず、htmlコンテンツにのみアクセスでき、JSログを表示する必要がありました、次のコードを追加して、light firebug JSをロードし、自動的に表示します。
JSから呼び出す
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://getfirebug.com/firebug-lite-debug.js';
document.head.appendChild(script);
またはhtmlから読み込む
<script type="text/javascript" src="https://getfirebug.com/firebug-lite-debug.js"></script>