2012-10-18 32 views
1

我在我的應用中有一個Facebook分享按鈕,一個推文按鈕。我的應用程序支持IOS 5.1。 所以對於twitter來說沒有問題。但我應該如何處理Facebook分享按鈕。確定哪個IOS在設備上運行

如果運行應用程序的IOS設備使用iOS6的我想用新的方式,比如你可以在here

當應用程序是在以前的IOS設備上運行,但看到的。我想用舊的時尚方式。

任何人都可以幫助我嗎?

親切的問候

+1

只要使用新的Facebook 3.0 iOS SDK,這將處理它一個我會幫你的。此外,[iOS框架](http://developer.apple.com/library/ios/#documentation/Twitter/Reference/TwitterFrameworkReference/_index.html)在iOS 6中已被棄用,您應該轉移到[社交框架]( http://developer.apple.com/library/ios/#documentation/Social/Reference/Social_Framework/_index.html#//apple_ref/doc/uid/TP40012233)。你不應該建立一些檢查iOS版本的東西,只要檢查一個類是否可用:'if([SLRequest class]!= nil) – rckoenes

+0

@rckoenes好吧,首先我使用社交框架爲facebook like和twitter tweet 。但我正確理解你,我應該使用Facebook的Facebook 3.0 IOS SDK和Twitter社交框架。正確嗎? –

+0

是的,Facebook SDK將使用本地社交框架(如果可用)。 – rckoenes

回答

6

如果你想知道,如果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部分。

+0

好吧,這對我很有用! –

1

您可以使用下面的代碼:

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

的步驟是: 首先薄弱環節的社會框架(使它可選)

下一個檢查,看看是否應用程序,你可以使用SLComposeViewController然後檢查用戶是否設置了他們的Facebook帳戶

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