我需要提供的错误消息在两种情况下完全不同.在第一种情况下,我们需要告诉用户如何重新开启我们,但这些说明会让案例2中的某些人感到困惑.
我尝试使用iOS帐户框架,但如果我关闭,我被告知即使有,也没有Facebook帐户.如果我成功进行身份验证,我还尝试写下帐户标识符,但如果我们关闭,accountWithIdentifier也会失败.
有人知道如何判断我们的拒绝是来自iOS还是FB本身?
解决方法
在这种情况下,FBSession将NSError对象传递给您的处理程序,并将userInfo中的FBErrorInnerErrorKey值设置为OS返回的错误对象.为了向用户提供精确的错误消息,您可以在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"); } }
希望这可以帮助!
*更新*
刚在设备上试过这个,发现了两个漏洞;一个在iOS 6.0中,另一个在SDK中. iOS 6.0的错误是当关闭开关时,操作系统不会传递NSError对象,因此没有内部错误.因此,使上述的一般解决方案不适用于所讨论的特定情况.第二个错误确实为您提供了使用SDK 3.1.1解决此问题的临时解决方案.
SDK 3.1.1中的错误是我们将error.userInfo [FBErrorLoginFailedReason]设置为FBErrorLoginFailedReason的值.在内部错误为NIL的情况下,您可以检查此原因值以确定应用程序的滑块已设置为关闭.当在SDK中修复此错误时,对此的代码测试将会中断,因为我们将原因设置为与iOS 6相关的更合理的原因.这是在未来的构建中需要注意的问题.你的申请,如果你决定依赖这个价值.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。