微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

适用于 Android 的 Facebook 共享 api 打开基于 Web 的对话框而不是本机应用程序

如何解决适用于 Android 的 Facebook 共享 api 打开基于 Web 的对话框而不是本机应用程序

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

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

我在 MainActivity 有这个 facebook 分享功能

    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()
        }
    }

当我调用函数时,它会打开一个基于网络的对话框,而不是 facebook 应用程序(已安装)。我尝试重新安装,但仍然无法正常工作。基于对话框而不是本机 facebook 应用程序?

这是它打开的基于网络的对话框:

enter image description here

解决方法

检查您的 SDK,可能与 SDK 版本有关。

高级主题

内置共享回退

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。