使用FBSDKshareDialog和FBSDKsharephoto

时间:2015-11-03 10:59:41

标签: ios facebook image swift

在使用图片发布到Facebook之前,我使用以下代码捕获屏幕截图:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(frame.size.width,frame.size.height), false, 0)
self.view?.drawViewHierarchyInRect(CGRectMake(-frame.origin.x, -frame.origin.y, view.bounds.size.width, view.bounds.size.height), afterScreenUpdates: false)
let screenShot  = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return screenShot

在第一个实例中,我使用Social FrameworkSLComposeViewController将屏幕截图添加到addImage。对话框和终极帖子上的图片都很完美,但这种方法不允许你选择你的朋友。

然后我决定使用use FBSDKDialog,如下所示:

let photo : FBSDKSharePhoto = FBSDKSharePhoto()
photo.image = screenShot
photo.userGenerated = false
photo.caption = contentDescription

let photoContent : FBSDKSharePhotoContent = FBSDKSharePhotoContent()
photoContent.photos = [photo]
photoContent.contentURL = NSURL(string: self.contentURL)

let shareDialog = FBSDKShareDialog()
shareDialog.fromViewController = self
shareDialog.shareContent = photoContent
shareDialog.delegate = self

if !shareDialog.canShow() {   
    shareDialog.mode = FBSDKShareDialogMode.Native
} else {   
    shareDialog.mode = FBSDKShareDialogMode.FeedBrowser
}
shareDialog.show()

代码工作正常,但共享对话框中的图像质量非常差。然而,当我确实发布时,时间线上的图像质量是完美的。

我试图压缩图像,但似乎没有任何区别。 任何人都可以建议我做错了什么? 谢谢。

1 个答案:

答案 0 :(得分:0)

你没有做错任何事。这可能是Facebook优化分享的一种方式。