检测 FB 共享对话框已准备就绪

Posted

技术标签:

【中文标题】检测 FB 共享对话框已准备就绪【英文标题】:Detect FB share dialog is ready 【发布时间】:2016-07-20 12:18:46 【问题描述】:

我们需要显示 FB 分享对话框。可以使用以下任一 FB.ui 来完成:

FB.ui(
        method: 'share',
        display: 'iframe',
        href: 'postUrl'
    );

甚至使用链接/REST。

我可以向 FB.ui() 添加第二个参数作为 function(result)...,并且 FB javascript SDK 将在对话框关闭后调用它作为回调 [要么发生共享,要么没有]。

我如何检测到对话框是显示的,而不是关闭的?

谢谢

【问题讨论】:

【参考方案1】:

只有在您向用户授权publish_actions 权限时,您才能确定是否有人共享了某些内容。在这种情况下,您将在回调中获得 Post ID,您可以在文档中阅读:https://developers.facebook.com/docs/sharing/reference/share-dialog#response

请注意,您不得以任何方式奖励用户分享或激励分享。您不会仅仅因为检查用户是否分享了某些内容而获得 Facebook 批准的publish_actions

编辑1:如果你只是想知道对话框是否可见......好吧,当你调用FB.ui时它是可见的,它不再可见然后调用回调。

编辑 2:我没有看到任何用例(请告诉我),但如果您想知道对话框是否出现(例如,没有被弹出窗口阻止程序阻止) ,那么我会说它是不可能检测到的。

【讨论】:

感谢您花时间看我的帖子。不幸的是,您的回答与我的问题无关。我知道如何处理带有结果的回调。 好的,你没听懂我的回答……这与你的问题 100% 相关。您想知道用户是否真的通过共享对话框发布了某些内容,对吗?如果不是,请解释。 也许,我没有。不过,我希望你能回答我的问题。 那么你的问题到底是什么?与其评论“你没有回答”,不如解释一下? 如果您唯一的问题是知道“对话框是否显示”...好吧,如果您调用 FB.ui,它是可见的。就这么简单。

以上是关于检测 FB 共享对话框已准备就绪的主要内容,如果未能解决你的问题,请参考以下文章

共享对话框不适用于 Facebook 应用 [android]

如何在不刷新页面的情况下使用 JS SDK 检测从 fb 注销

没有链接的 Facebook 共享对话框

通过 FB SDK for iOS 将视频分享到 facebook

Facebook分享对话框立即消失

如何为 mtp 设备构建路径(可在文件夹浏览对话框中使用)?