gpt4 book ai didi

ios - stringByEvaluatingJavaScriptFromString : make my user interface become unresponsive

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:46 29 4
gpt4 key购买 nike

我使用 GCD 在 UIWebView 中运行 javascript,当它是正常的 javascipt 时,一切似乎都找到了,但是当涉及到“警报”时,弹出模态视图使我的用户界面变得无响应。

这是我在 UIWebViewDelegate 方法中的代码。

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{

NSLog(@"RECEIVED");
BOOL re =[WebParserStrategy shouldConsiderAsRequest:request];
NSLog(@"--receive Request: %@ jumpTo:%@", request.URL.absoluteString, re == YES ? @"YES" : @"NO!!");
if(re == NO)
{
dispatch_async(parserRequestToMessageQueue, ^{

NSString *msg;
NSDictionary *param;
[WebParserStrategy transferRequest:request toMessage:&msg withParam:&param];
WebObserverChain *chain = [self.messageObservers objectForKey:msg];
if(chain == nil)
;//NSLog(@"!!!unknow message:%@ not found in message list", msg);
else {
dispatch_async(dispatch_get_main_queue(), ^{

[self.webView stringByEvaluatingJavaScriptFromString:@"alert('')"];
});
}
});
}
return re;}

最佳答案

这是因为 Web 警报是同步/阻塞的,而您是在整个应用程序的主队列上执行此操作。只需使用 UIAlertView 或找到一些其他解决方案来解决您尝试通过警报完成的任务。

由于您无法控制 UIWebView 执行 Objective-C 提供的 javascript 的并发性,因此您应该避免进行任何执行速度不是非常非常快的调用。否则,您的整个应用程序的主线程将受制于最不可靠的 UIKit 类之一。

关于ios - stringByEvaluatingJavaScriptFromString : make my user interface become unresponsive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801773/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com