【问题标题】:determine which IOS is running on the device确定设备上正在运行的 IOS
【发布时间】:2012-10-08 21:30:02
【问题描述】:

我的应用中有一个 Facebook 分享按钮和一个推文按钮。我的应用支持 IOS 5.1。 所以对于推特来说没有问题。但是我应该如何使用 facebook 分享按钮。

如果运行应用程序的 IOS 设备使用的是 IOS6,我想使用新的方式,就像你可以看到 here

但是当应用程序在以前的 IOS 设备上运行时。我想用老式的方式。

谁能帮帮我?

亲切的问候

【问题讨论】:

  • 只需使用新的 Facebook 3.0 iOS SDK,它会为您处理一切。此外,Twitter framework 在 iOS 6 中已弃用,您应该移至social framework。而且你永远不应该构建检查 iOS 版本的东西,只需检查一个类是否可用:if ([SLRequest class] != nil)
  • @rckoenes 好的,首先我将社交框架用于 facebook like 和 twitter tweet。但我理解正确,我应该为 facebook 使用 Facebook 3.0 IOS SDK,为 twitter 使用社交框架。正确吗?
  • 是的,Facebook SDK 将使用本地社交框架(如果可用)。
  • 因为 Apple 提供了一个社交框架,所以使用它而不是 iOS 版本号。如果在 iOS 的下一个版本中,Apple 删除了 facebook 怎么办?然后你必须再次修改你的代码。
  • @rckoenes 出于好奇,如果有问题的课程是私下介绍的怎么办?这不会返回误报吗?

标签: objective-c ios facebook ipad twitter


【解决方案1】:

如果您想知道SLComposeViewController 是否支持 Facebook,请查看isAvailableForServiceType,例如

if ([SLComposeViewController class]) {
    // once you know that they have iOS 6 or higher
    // check if the account is setup
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
    {
        // now we know we have a facebook account configure and logged in
    }
} else {
    // You don't have iOS 6 or higher
}

通常最好使用 API(或 classNSClassFromString 用于弱链接类,或 respondsToSelector,如果类具有在更高版本的 iOS 中添加的方法)而不是检查 iOS 版本。有关详细信息,请参阅 iOS 应用程序编程指南的Supporting Multiple Versions of iOS 部分。

【讨论】:

    【解决方案2】:

    您可以使用以下代码:

    if([[[UIDevice currentDevice] systemVersion] intValue] == 6)
    {
     // your code for iOS 6
    }
    else
    {
     // your code for other iOS
    }
    

    【讨论】:

      【解决方案3】:

      步骤如下: 首先弱链接社交框架(使其可选)

      接下来检查应用是否可以使用 SLComposeViewController,然后检查用户是否设置了他们的 Facebook 帐户

      if(NSClassFromString(@"SLComposeViewController") != nil)
      {
        if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]])
        {
         //Add your SLComposeViewController code
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-08
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-30
        相关资源
        最近更新 更多