gpt4 book ai didi

iphone - 停止快速调用 webViewDidFinishLoad

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:56 26 4
gpt4 key购买 nike

在我的 webViewDidFinishLoad 方法中,我有以下代码:

- (void)webViewDidFinishLoad:(UIWebView *)webView {   
if (hasPressed == 1) {
hasPressed = 0;
isBlocked = 0;
}
else if (hasPressed == 0 && hasDroppedDown == 0) {
if (viewState != kStateWeather || isBlocked == 0) {
[UIView animateWithDuration:0.5
delay:0.0 options:UIViewAnimationCurveLinear animations:^{
//Animations
}
completion:^(BOOL finished){
hasDroppedDown = 1;
}];
}
}
}

如您所见,如果此方法被快速调用,例如一个有重定向的网站,我的 else if 中的 else 变得无用。如何阻止它被如此快速地调用?

最佳答案

不幸的是,你不能那样做。当一个新的 URL 开始加载到 UIWebView 时,它就会调用。相反,你可以做一件事。实现委托(delegate)功能

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

当新框架即将开始加载到 UIWebView 中时,将调用此委托(delegate)。您可以通过检查可以获取值的 navigationType 来确定将加载哪种类型的请求

UIWebViewNavigationTypeLinkClicked
UIWebViewNavigationTypeFormSubmitted
UIWebViewNavigationTypeBackForward
UIWebViewNavigationTypeReload
UIWebViewNavigationTypeFormResubmitted
UIWebViewNavigationTypeOther

注意:如果您允许 webview 加载页面,则返回 YES,否则返回 NO

希望对你有帮助。

关于iphone - 停止快速调用 webViewDidFinishLoad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451055/

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