我在viewDidLoad中有以下代码,它在iOS 4.3上正常工作,但它挂在iOS 5 / 5.1上.在iOS 5 / 5.1上,显示警告对话框,但无法关闭,UI线程冻结,OK按钮无法单击.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{ dispatch_sync(dispatch_get_main_queue(),^{ [self.webview stringByEvaluatingJavaScriptFromString:@"alert('HELLO WORLD!')"]; }); });
这是一个bug吗?
解决方法
经过测试,我认为它是一个Bug,并改变使用的代码
[webView performSelectorOnMainThread:@selector(stringByEvaluatingJavaScriptFromString:) withObject:js waitUntilDone:NO]
会解决