问题描述
我在我的 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 应用程序?
解决方法
检查您的 SDK,可能与 SDK 版本有关。
高级主题
内置共享回退
在过去的 Android SDK 版本中,您的应用必须先检查原生的、已安装的 Facebook 应用,然后才能打开共享对话框。如果此人未安装该应用,则您必须提供自己的代码来调用回退对话框。
现在 SDK 会自动检查原生 Facebook 应用。如果未安装,SDK 会将用户切换到他们的默认浏览器并打开 Feed 对话框。