- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我在 iOS6 中设置了 Facebook 帐户但用户已将其关闭,则 SDK 只会给我一个 FBSessionStateClosedLoginFailed 状态。由此,我无法判断用户是否在 iOS 中关闭了我们(案例 1),或者没有在 iOS 中设置帐户并拒绝来自 FB 应用程序或 Web 应用程序的许可(案例 2)。
在这两种情况下,我需要呈现的错误消息是完全不同的。在第一种情况下,我们需要告诉用户如何重新打开我们,但在情况 2 中,这些说明会让某些人感到困惑。
我尝试使用 iOS 帐户框架,但如果我被关闭,我会被告知即使有 Facebook 帐户也没有。如果我成功通过身份验证,我也尝试写下帐户标识符,但如果我们关闭,accountWithIdentifier 也会失败。
有人知道我们的拒绝是来自 iOS 还是来自 FB 本身的方法吗?
最佳答案
SDK 的一般策略是,如果某些操作正在失败,则来自操作系统的底层错误信息会冒泡到应用程序。 (当然,并非所有失败案例都以 OS API 失败开始。)此策略的原因是支持更精确的错误处理和日志记录方案,如您所描述的。顺便说一句,如果您在 SDK 中发现不遵循此模式的地方,这是一个错误,请报告。
在这种情况下,FBSession 将一个 NSError 对象传递给您的处理程序,并将 userInfo 中的 FBErrorInnerErrorKey 值设置为操作系统返回的错误对象。为了向您的用户提供准确的错误消息,您可以在 FBSessionStateClosedLoginFailed 案例中使用如下代码片段:
if (error) {
NSError *innerError = error.userInfo[FBErrorInnerErrorKey];
if ([innerError.domain isEqualToString:ACErrorDomain] &&
innerError.code == ACErrorPermissionDenied) {
NSLog(@"User dissallowed permissions via iOS 6.0 integration");
}
}
关于ios6 - SDK 3.1 : How to tell whether SDK is using iOS6 accounts or not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12712204/
我是一名优秀的程序员,十分优秀!