在 Objective-C 中,以下代码适用于viewDidLoad
:
[self.myWebView performSelectorOnMainThread:
@selector(stringByEvaluatingJavaScriptFromString:)
withObject:@"alert('Test')" waitUntilDone:NO];
此代码建议如下:
使用 GCD 调用 UIWebView stringByEvaluatingJavaScriptFromString 在 iOS5.0/5.1 上挂起
它说performSelectorOnMainThread
适用于stringByEvaluatingJavaScriptFromString
. 这会弹出一个警告对话框,可以通过单击“确定”按钮将其关闭。但是,dispatch_async
不起作用,对话框冻结,无法按下 OK 按钮。
问题是:如何使上述对话框的功能在 Swift 中工作?如何将代码转换为 Swift?
问题是performSelectorOnMainThread
在 Objective-C 中使用的在 Swift 中不可用。
如果我直接在 中调用下面的代码viewDidLoad
,设备会被 LaunchScreen 挂起:
override func viewDidLoad() {
super.viewDidLoad()
myWebView.stringByEvaluatingJavaScriptFromString("alert('test')");
我已经尝试了替代解决方案,performSelectorOnMainThread
但结果是冻结的 LaunchScreen 或冻结的警报对话框。
有人可以告诉我如何调用stringByEvaluatingJavaScriptFromString
以在 Swift 中显示 JavaScript 警报对话框吗?谢谢你。