在 Swift 中使用 Facebook Messenger SDK
Using Facebook Messenger SDK in Swift
我一直在尝试在我的 Swift 项目中使用 Facebook Messenger SDK。
问题是 Facebook 仅在 Objective-C 中显示如何使用。
我在从 FBSDKMessengerShareKit 调用方法时遇到问题。
我制作了桥接头并添加了 FBSDKMessengerShareKit 用于导入。
桥接头是这样的
#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];
}
我将其更改为 Swift
的方式
if (FBSDKMessengerSharer.messengerPlatformCapabilities() & FBSDKMessengerPlatformCapability.Image) {
let myImage = UIImage(named: "myImage")
FBSDKMessengerSharer.shareImage(myImage, withOptions: nil)
}
我的 Swift 代码无法构建,它总是显示错误
"Could not find an overload for '&' that accepts the supplied arguments"
我不知道我的 Swift 代码有什么问题,有人知道如何在 Swift 中使用 MessengerSDK 吗?
这是您需要的代码:
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
在 Swift 中您可以使用此代码:
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 window 内容。
不是答案,但从今天 2021 年 4 月 15 日起,MessageDialog
或 FBSDKMessageDialog
已弃用
这里是FBResponse
Share to Messenger SDK that allows people to share links and media from apps to Messenger will no longer be supported. Businesses and developers might need to make modifications to their app to trigger native OS sharing. People will be able to share content to Messenger using the native sharing features that is built into their devices.
我一直在尝试在我的 Swift 项目中使用 Facebook Messenger SDK。 问题是 Facebook 仅在 Objective-C 中显示如何使用。 我在从 FBSDKMessengerShareKit 调用方法时遇到问题。 我制作了桥接头并添加了 FBSDKMessengerShareKit 用于导入。 桥接头是这样的
#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];
}
我将其更改为 Swift
的方式if (FBSDKMessengerSharer.messengerPlatformCapabilities() & FBSDKMessengerPlatformCapability.Image) {
let myImage = UIImage(named: "myImage")
FBSDKMessengerSharer.shareImage(myImage, withOptions: nil)
}
我的 Swift 代码无法构建,它总是显示错误 "Could not find an overload for '&' that accepts the supplied arguments"
我不知道我的 Swift 代码有什么问题,有人知道如何在 Swift 中使用 MessengerSDK 吗?
这是您需要的代码:
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
在 Swift 中您可以使用此代码:
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 window 内容。
不是答案,但从今天 2021 年 4 月 15 日起,MessageDialog
或 FBSDKMessageDialog
已弃用
这里是FBResponse
Share to Messenger SDK that allows people to share links and media from apps to Messenger will no longer be supported. Businesses and developers might need to make modifications to their app to trigger native OS sharing. People will be able to share content to Messenger using the native sharing features that is built into their devices.