我正在使用适用于 ios 的 facebook api,并且我正在使用 facebook 对话框来发帖。
基本思想是,我有一个发布按钮,它调用一个方法并询问您是否已登录以立即发布或执行登录然后发布。当第二种情况发生时,我无法在登录 Facebook 后立即发布,因此我必须点击按钮并再次调用该方法,以便我可以发布。
Facebook 发送给我的错误说:操作无法完成。 (NSURLErrorDomain错误-999。)
我在堆栈中读到过有关它的内容,它说:
根据《基础常量参考》,错误代码-999表示“NSURLErrorCancelled”。
描述:
当异步加载取消时返回。 Web Kit 框架委托在对加载资源执行取消操作时将收到此错误。请注意,如果取消下载,NSURLConnection 或 NSURLDownload 委托将不会收到此错误。适用于 iOS 2.0 及更高版本。在 NSURLError.h 中声明。
问题是为什么 Facebook 向我发送此信息以及我该如何解决它?
如果需要更多代码我可以添加它。
提前致谢。
我修复此问题的方法是更改 FBDialog.m 以忽略错误代码 -999,如下所示
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
// 102 == WebKitErrorFrameLoadInterruptedByPolicyChange
NSLog(@"FBDialog webView didFailLoadWithError:%@ %d",error.domain,error.code);
if ([error.domain isEqualToString:@"NSURLErrorDomain"] && error.code == -999)
return;
if ([error.domain isEqualToString:@"WebKitErrorDomain"] && error.code == 102)
return;
[self dismissWithError:error animated:YES];
}
有趣的是 FBLoginDialog 已经忽略了错误代码 102 和 -999,而 FBDialog 只忽略了 102。您自己看看:https://github.com/facebook/facebook-ios-sdk/blob/master/src/FBLoginDialog.m#L85 https://github.com/facebook/facebook-ios-sdk/blob/master/src/FBLoginDialog.m#L85
我不知道这是否是最好的解决方案,但我对此更有信心,因为 Facebook sdk 代码的另一段已经忽略了相同的错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)