Facebook SDK for iOS:FBSDKShareDialog未显示

3
我是个iOS新手,想要使用Facebook SDK for iOS分享一个链接。我的代码如下:
@IBAction func shareVoucherUsingFacebook(sender: UIButton) {
    print("Facebook")
    let content : FBSDKShareLinkContent = FBSDKShareLinkContent()
    content.contentURL = NSURL(string: "www.google.com")
    content.contentTitle = "Content Title"
    content.contentDescription = "This is the description"

    let shareDialog: FBSDKShareDialog = FBSDKShareDialog()

    shareDialog.shareContent = content
    shareDialog.delegate = self
    shareDialog.fromViewController = self
    shareDialog.show()

}

我已经实现了FBSDKSharingDelegate方法,但是当我按下这个按钮时无法接收到分享对话框,而是执行了func sharer(sharer: FBSDKSharing!, didFailWithError error: NSError!)方法,这意味着出现了一些问题,但我无法弄清楚。
提前感谢。

你有没有找到解决办法?我现在也遇到了同样的问题... - Tim Specht
3个回答

3

修改这一行

content.contentURL = NSURL(string: "www.google.com")

转换成

content.contentURL = NSURL(string: "https:\\www.google.com")

我和你一起工作

这些是我使用的委托方法

func sharer(sharer: FBSDKSharing!, didCompleteWithResults results: [NSObject: AnyObject])
{
    print(results)
}

func sharer(sharer: FBSDKSharing!, didFailWithError error: NSError!)
{
    print("sharer NSError")
    print(error.description)
}

func sharerDidCancel(sharer: FBSDKSharing!)
{
    print("sharerDidCancel")
}

Swift无法识别这些方法作为代理。没有找到将这些ObjC方法正确翻译成Swift的解决方案。 - Alexander Yakovlev

2

请记得在代码中使用NSURL(string:"")时,将contentURL前加上http://

let content : FBSDKShareLinkContent = FBSDKShareLinkContent()
content.contentURL = NSURL(string: "http://www.google.com")
content.contentTitle = "Content Title"
content.contentDescription = "This is the description"

FBSDKShareDialog.showFromViewController(self, withContent: content, delegate: self)

谢谢,这对于Swift4也完全有效。 - kiran kumar

0
实现委托方法对我起了作用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接