Situation: I invoke a Javascript alert
through the UIWebView
method stringByEvaluatingJavaScriptFromString:
like this
This question gave me the most insight to the problem...
Deadlock with GCD and webView
The gist is that the thread handling the JS from the stringByEvaluatingJavaScriptFromString:
method and the thread handling the iOS alert view are probably blocking each other, making the "Close" button unresponsive.
My workaround is to defer the JS alert
with a setTimeout
, something like this...
NSString *jsMyAlert = @"setTimeout(function(){alert('FOOBAR');}, 1);";
[myWebView stringByEvaluatingJavaScriptFromString:jsMyAlert];
To avoid any risk of deadlock, it might be better to have the UIWebView
trigger an UIAlertView
rather than rely on UIWebView
to handle the JS alert
. The workaround above would be suitable for most debugging purposes though.