如果你看一下这里的代码:
在UIWebView中实现OAuth 2.0流程.
作者将此代码用于didFailLoadWithError委托函数:
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
if ([error.domain isEqualToString:@"WebKitErrorDomain"] && error.code == 102) {
return;
}
if (error.code == NSURLErrorCancelled) {
// ignore rapid repeated clicking (error code -999)
return;
}
}
Run Code Online (Sandbox Code Playgroud)
他为什么忽略这两个错误(NSURLErrorCancelled)和错误代码102?
ste*_*e84 10
WebKitErrorDomain中的错误代码102是UIWebView在其委托返回FALSE时引发的错误webView:shouldStartLoadWithRequest:navigationType.当使用UIWebView实现OAuth2流时,通常在遇到最终重定向URL时执行此操作,因为这意味着是时候隐藏Web视图并开始直接从身份验证中使用令牌在URL中交换访问代码的过程供应商.
第二个错误是我不熟悉的东西,但基于提供的代码注释和此问题的接受答案,我怀疑浏览器或UIWebView中有一些逻辑会自动过滤掉快速重复的点击.该错误可能是由设计引起的,因此如果他们感兴趣,可以通知代表.
102 处理(WebDAV;RFC 2518) 由于WebDAV 请求可能包含许多涉及文件操作的子请求,因此可能需要很长时间才能完成该请求。此代码表示服务器已收到并正在处理请求,但尚未收到任何响应。[3] 这可以防止客户端超时并假设请求丢失。
WebKitErrorDomain NSError 使用的字符串来指示错误是由 WebKit 类发起的。
看起来网络工具包错误是内部错误,作者不想处理这个错误
没有看到条件中有 && 。所以这意味着如果出现WebKitErrorDomain并且代码是102——这意味着Web Kit暂时无法显示页面,因为子请求太多,你必须稍等一下
| 归档时间: |
|
| 查看次数: |
9535 次 |
| 最近记录: |