在ios中从WebView捕获JavaScript异常

时间:2016-05-19 10:59:06

标签: ios objective-c iphone webview

如果屏幕中出现WebView,我需要抓住WebView中出现的错误。这不是绑定到特定的WebView

3 个答案:

答案 0 :(得分:4)

不确定您是否已经尝试过此解决方案,您可以在JS代码中捕获异常并调用本机方法来记录此信息。在接收到创建了webView的JS上下文的UIWebView委托回调之后,您可以将此本机方法实现注入到UIWebview的JS上下文中。

- (void)webView:(id)webView didCreateJavaScriptContext:(JSContext *)context forFrame:(id)frame {
//this injects the MyNativeLog in your UIWebView JS context and you can call this function in your JS code.
context[@"MyNativeLog"] = ^(NSString *string){
            NSLog(@"%@", string);
        };
}

希望这会有所帮助!!

答案 1 :(得分:1)

以下内容可以帮助您查看以下已存在的链接

How can my iPhone Objective-C code get notified of Javascript errors in a UIWebView?

您可以将UIWebView控件挂钩到隐藏的WebKit框架,并获取所有异常,执行的函数等。

答案 2 :(得分:0)

您需要使用webView:didClearWindowObject:forFrame:的{​​{1}}方法。

请检查:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/Protocols/WebFrameLoadDelegate_Protocol/#//apple_ref/occ/instm/NSObject/webView:didClearWindowObject:forFrame:

在那里你可以捕获碰巧发生的任何类型的javascript异常。这不绑定到特定的WebView。