我正在使用TWTweetComposeViewController访问用户的Twitter帐户,他/她已在设置 - > Twitter中添加了该帐户.当应用程序尝试访问Twitter帐户时,它应该使用类似于此的消息来提示警报:
"[AppName] Would Like Access to Twitter Accounts"
Run Code Online (Sandbox Code Playgroud)
您可以点击"不允许"或"确定".我想这是操作系统本身显示的警报,因为点击"确定"实际上可以访问推特.
当我在iOS 5.x设备上测试时会显示上述警报,但在iOS 6设备上测试时则不是这种情况.我希望在发送以下消息时显示警报,并且我还没有在设置中获得我对Twitter的应用访问权限:
[TWTweetComposeViewController canSendTweet]
Run Code Online (Sandbox Code Playgroud)
如上所述,它不会发生.有谁知道这是iOS 6中的已知错误吗?我一直无法在SO上找到任何帖子,因为我找不到其他不同行为的理由我认为这是一个错误.
仅供参考,我在以下两个设备上测试:
更新
我使用DETweetComposeViewController,它以下列方式检查iOS 5:
+ (BOOL)de_isIOS5
{
return (NSClassFromString(@"NSJSONSerialization") != nil);
}
Run Code Online (Sandbox Code Playgroud)
但由于NSJSONSerialization类也在iOS 6中表示,因此不应该这样.
小智 30
我整天都在iOS 5.1和iOS 6.0上整理同样的东西.
只要在"设置"中配置了Twitter帐户,我的应用程序就不再要求iOS 6.0中的Twitter访问权限来显示TWTweetComposeViewController.我通过手动关闭我的应用程序的Twitter访问来验证这一点Settings > Privacy > Twitter.关闭访问权限,我被正确拒绝使用TWRequest创建友谊的能力,但仍然可以弹出TWTweetComposeViewController.我每次都会在iOS 5.1中收到提示,直到我授予它访问权限.
这对我来说很有意义.所有这些TWTweetComposeViewController都是启动推文,因此如果用户已经配置了设备范围的Twitter帐户,那么该权限应该足以从任何地方发送推文.在每个应用程序的基础上授予访问权限确实是一个不必要的额外步骤.
如果尚未配置Twitter帐户,TWTweetComposeViewController则会显示以下消息:
No Twitter Accounts
There are no Twitter accounts
configured. You can add or create
a Twitter account in Settings.
Run Code Online (Sandbox Code Playgroud)
方便的按钮"设置"和"取消".
对此的旁注:iOS 6也仅"[AppName] Would Like Access to Twitter Accounts"在应用首次请求访问时提示消息.
之后,您必须重置Settings > General > Reset > Reset Location & Privacy以获得问题提示.即使您删除并重新安装/重建应用程序,"已经被要求一次"设置仍然存在.您可以手动启用访问权限Settings > Privacy,但重置是获取重新显示提示的唯一方法(如果这对您的测试很重要).
我发现了两件额外的东西.在完成块中[ACAccountStore requestAccessToAccountsWithType:options:completion:],如果granted == NO:
[error code] == 6,您的用户没有定义帐户.error == nil您的用户暂时或之前拒绝了您的应用的访问权限.如果以前发生过,则会默默忽略该请求,屏幕上不显示任何警告,也不会点击"不允许"按钮.| 归档时间: |
|
| 查看次数: |
7603 次 |
| 最近记录: |