2015-05-02 124 views
3

我一直試圖在Swift Project中使用Facebook Messenger SDK。 問題是,Facebook只顯示如何在Objective-C中使用。 我無法從FBSDKMessengerShareKit調用方法。 我製作了橋接頭文件,並添加了FBSDKMessengerShareKit以供導入。 的橋接報頭是這樣在Swift中使用Facebook Messenger SDK

#import <FBSDKCoreKit/FBSDKCoreKit.h> 
#import <FBSDKLoginKit/FBSDKLoginKit.h> 
#import <FBSDKMessengerShareKit/FBSDKMessengerShareKit.h> 

#ifndef myProject_Bridging_Header_h 
#define myProject_Bridging_Header_h 

#endif 

這就是Facebook如何展示瞭如何在Messenger中使用Objective-C

if ([FBSDKMessengerSharer messengerPlatformCapabilities] & FBSDKMessengerPlatformCapabilityImage) { 
    UIImage *image = [UIImage imageNamed:@"myImage]; 
    [FBSDKMessengerSharer shareImage:image withOptions:nil]; 
} 

我改變成斯威夫特

if (FBSDKMessengerSharer.messengerPlatformCapabilities() & FBSDKMessengerPlatformCapability.Image) { 
      let myImage = UIImage(named: "myImage") 
      FBSDKMessengerSharer.shareImage(myImage, withOptions: nil) 
} 
的方式分享圖片

我的Swift代碼無法建立,它總是顯示錯誤 「無法找到'&'的超載,它接受suppl ied論據「

我不知道我的Swift代碼有什麼問題,有誰知道如何在Swift中使用MessengerSDK?

回答

4

這裏是你需要的代碼:

let result = FBSDKMessengerSharer.messengerPlatformCapabilities().rawValue & FBSDKMessengerPlatformCapability.Image.rawValue 
    if result != 0 { 
     // ok now share 
     if let sharingImage = sharingImage { 
      FBSDKMessengerSharer.shareImage(sharingImage, withOptions: nil) 
     } 
    } else { 
     // not installed then open link. Note simulator doesn't open iTunes store. 
     UIApplication.sharedApplication().openURL(NSURL(string: "itms://itunes.apple.com/us/app/facebook-messenger/id454638411?mt=8")!) 
    } 

檢查這更多參考:http://shoheik.hatenablog.com/entry/2015/03/28/120212

+2

FBSDKMessengerSharer.messengerPlatformCapabilities()與iOS 9一樣被刪除 – Abhishek

0

在斯威夫特您可以使用此代碼:

  if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb-messenger-api://")!) { 
       let content = FBSDKShareLinkContent() 
       content.contentURL = NSURL(string: url) 
       content.contentTitle = "your awesome title" 

       FBSDKMessageDialog.showWithContent(content, delegate: self) 
      } else { 
       UIApplication.sharedApplication().openURL(NSURL(string: "https://itunes.apple.com/pl/app/messenger/id454638411?mt=8")!) 
      } 

這顯示Messenger窗口與內容。