2011-11-22 77 views
4

我正面臨以下問題:我的應用程序必須加載一些網頁內容,出於某種原因內容未呈現應有的樣子(網頁內容在移動Safari上完美運行)。 所以我需要一種方法來獲取UIWebView中的javascript錯誤通知。UIWebView - 調試javascript

我讀this答案,但實際上,我不能讓它的工作:(

可能有人,已經這樣做,請解釋一下我該怎麼辦

另一個問題是:在一個UIWebView在iOS中整合5.x中的硝基引擎?becaue有人說是別人說提前

+0

你提到的答案不是關於UIWebView,而是關於Mac OS的WebView。有一些JS/JQuery函數在UIWebView上運行不正常(但Mobile Safari不會呻吟) - 我們的示例在由JQuery製作的DOM中進行查詢。沒有可能跟蹤UIWebView中的JS錯誤 - 你需要獲取JS文件並找出發生了什麼。 – Piotr

+0

事實上,如果您更多關注我所鏈接的鏈接,特別是przela答案,他表示解決方案即使在iOS上也能正常工作。還有另一種在webview中進行調試的方法,可以實現webkit遠程調試。所以可能性不止一個...... –

回答

3

我已經運行了相當多的Javascript一種無形的WebView。

沒有....

謝謝

在iOS上調試Javascript有點棘手。以下我發現有幫助,雖然我找不到銀彈:

  • 沒有console.log。我自己實現它,使用其他人使用的相同- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
  • 有設施remote debugging in iOS 5.x。你可以設置斷點,檢查變量等,但沒有一步一步的調試器。 iOS強加了10秒的硬限制,如果JavaScript調用時間過長,那麼它將在沒有警告的情況下終止。這使得這個調試橋非常有用。
  • iOS 5.x有可怕錯誤。沒有堆棧軌跡,沒有行號,沒有文件名,沒有。很多時候,我被困在'undefined' is not a function沒有額外的幫助。
  • iOS 4.3有更好的錯誤。仍然沒有堆棧跟蹤,但行號和文件名存在。
  • 有一種方法- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;作爲遠射可能會報告Javascript錯誤。它沒有。

事情我還沒有試過,但我的名單上:

  • Weinre看起來很有趣,如果我的目的有點沉重。
  • JSConsole看起來像是勝利者,但對調試錯誤可能不是很有幫助。