J'ai une solution pour enregistrer, à l'aide de javascript, dans la console de débogage de l'application. C'est un peu rudimentaire, mais ça fonctionne.
Tout d'abord, nous définissons la fonction console.log() en javascript, qui ouvre et supprime immédiatement une iframe avec une url ios-log :.
// Debug
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;
Nous devons maintenant attraper cette URL dans le UIWebViewDelegate de l'application iOS en utilisant la fonction shouldStartLoadWithRequest.
- (BOOL)webView:(UIWebView *)webView2
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
NSString *requestString = [[[request URL] absoluteString] stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
//NSLog(requestString);
if ([requestString hasPrefix:@"ios-log:"]) {
NSString* logString = [[requestString componentsSeparatedByString:@":#iOS#"] objectAtIndex:1];
NSLog(@"UIWebView console: %@", logString);
return NO;
}
return YES;
}
1 votes
Écrivez-le d'abord dans le navigateur, activez les outils de développement, puis regardez la sortie de la console.