ios - Facebook ShareDialog 在完成时始终返回 .canceled

标签 ios swift facebook

共享对话框打开 Facebook 应用程序,尽管内容已成功共享,但我总是收到 .cancelled 回调。在这两种情况下 - 当我取消共享时和共享成功时。知道出了什么问题吗? Pod 版本:

Using Bolts (1.8.4)
Using FBSDKCoreKit (4.20.2)
Using FBSDKLoginKit (4.20.2)
Using FBSDKShareKit (4.20.2)
Using FacebookCore (0.2.0)
Using FacebookLogin (0.2.0)
Using FacebookShare (0.2.0)

显示对话框的片段:

    @IBAction func onShareClicked(_ sender: UIButton) {
    do{
        var myContent = LinkShareContent(url: URL(string: "https://www.facebook.com/8MinuteWorkoutChallenge")!)
        myContent.hashtag = Hashtag("#8MWC")

        let shareDialog = ShareDialog(content: myContent)
        shareDialog.mode = .native
        shareDialog.failsOnInvalidData = true
        shareDialog.completion = { result in
            switch result {
            case .success:
                print("Share succeeded")
            case .failed:
                self.shareButton.isHidden = true
            case .cancelled:
                print("Share cancelled")
            }
        }

        try shareDialog.show()
    } catch {
        print("Error: \(error)")
    }
}

配置

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
</array>
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb188***33776</string>
        </array>
    </dict>
</array>
<key>FacebookAppID</key>
<string>18851***3776</string>
<key>FacebookDisplayName</key>
<string>8MWC</string>

最佳答案

使用下面的代码向当前 View Controller 显示 FB 共享对话框:

{
   let shareDialog: FBSDKShareDialog = FBSDKShareDialog()
    shareDialog.shareContent = content
    shareDialog.delegate = self
    shareDialog.fromViewController = self
    shareDialog.show()
}

这可以让我分享 Facebook 的链接。您可以使用委托(delegate)方法来获取共享状态回调。

关于ios - Facebook ShareDialog 在完成时始终返回 .canceled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43064013/

相关文章:

ios - iOS中的后台录音

swift - 为什么用 Swift 编写的类的符号很难在 lldb 中读取?有可能改变这个吗?

javascript - 如何在 Swift 中创建 Javascript 安全字符串?

ios - Facebook:FQL 获取所有签到 me() 已标记在

javascript - `navigator.geolocation.getCurrentPosition()` 在 iOS PWA 上挂起

ios限制输入多个 "."或 ","(如果是俄语本地化)

ios - iOS 中的 Replace Segue 是什么?

ios - 在 Swift3 iOS 中为捕获的视频添加滤镜效果后音频丢失

c# - 为您的应用程序获取新的 Facebook 点赞流

javascript - facebook页面选项卡申请请求