Эта публикация может помочь вам:
Как мой код iPhone Objective-C может получать уведомления об ошибках Javascript в UIWebView?
Вы можете подключить элемент управления UIWebView кскрытый фреймворк WebKit и получение всех исключений, выполняемых функций и т. п.
Другой способ - , опубликованный здесь : вставка кода JavaScript в ответ, который вызывает функцию objecie-c.
NSString* path = [[NSBundle mainBundle] pathForResource:@"script"
ofType:@"js"];
NSString* content = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:NULL];
[sender stringByEvaluatingJavaScriptFromString:content];
Например, код JavaScript может выглядеть следующим образом:
console = new Object();
console.log = function(log) {
var iframe = document.createElement("IFRAME");
iframe.setAttribute("src", "ios-log:#iOS#" + log);
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;
}
console.debug = console.log;
console.info = console.log;
console.warn = console.log;
console.error = console.log;
, а код объективного c:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSString *requestString = [[[request URL] absoluteString] stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
//NSLog(requestString);
NSLog(@"Request: %@", requestString);
if ([requestString hasPrefix:@"ios-log:"]) {
NSString* logString = [[requestString componentsSeparatedByString:@":#iOS#"] objectAtIndex:1];
NSLog(@"UIWebView console: %@", logString);
return NO;
}
return YES;
}