首页 > 解决方案 > 适用于 android 的 Facebook 共享 api 打开基于 Web 的对话框而不是本机应用程序

问题描述

我在我的 android 应用程序中实现了 facebook 共享,当我阅读文档时它说:

“分享对话框切换到原生 Facebook for Android 应用程序,然后在发布帖子后将控制权返回给您的应用程序。根据您使用的 SDK,人们可能需要点击后退箭头图标才能返回到您的应用程序。如果未安装 Facebook 应用程序,共享对话框会自动退回到基于 Web 的对话框。”

我有这个 facebook 分享功能MainActivity

    fun facebookShare() {
        try {
            val content = ShareLinkContent.Builder()
                .setContentUrl(Uri.parse("https://play.google.com/store/apps/details?id=Avedot"))
                .setQuote(getString(R.string.facebookText))
                .build()
            val shareDialog = ShareDialog(this)
            if (shareDialog.canShow(content)) {
                shareDialog.show(content)
            }
        } catch (ex: ActivityNotFoundException) {
            Toast.makeText(this, "Facebook have not been installed.", Toast.LENGTH_SHORT).show()
        }
    }

当我调用该函数时,它会打开一个基于 Web 的对话框,而不是 facebook 应用程序(已安装)。我尝试重新安装,但它仍然无法正常工作。为什么共享对话框作为基于 Web 的对话框打开的任何建议和不在本机 Facebook 应用程序中?

这是它打开的基于网络的对话框: 在此处输入图像描述

标签: androidfacebookfacebook-android-sdkfacebook-share

解决方案


让我们检查您的 SDK,也许它与 SDK 的版本有关。

高级主题

内置共享后备

在过去的 Android SDK 版本中,您的应用必须先检查已安装的本机 Facebook 应用,然后才能打开共享对话框。如果此人没有安装应用程序,您必须提供自己的代码来调用回退对话框。

现在,SDK 会自动检查本机 Facebook 应用程序。如果未安装,SDK 会将用户切换到他们的默认浏览器并打开 Feed 对话框。


推荐阅读