android - 适用于 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 应用程序中?
解决方案
让我们检查您的 SDK,也许它与 SDK 的版本有关。
高级主题
内置共享后备
在过去的 Android SDK 版本中,您的应用必须先检查已安装的本机 Facebook 应用,然后才能打开共享对话框。如果此人没有安装应用程序,您必须提供自己的代码来调用回退对话框。
现在,SDK 会自动检查本机 Facebook 应用程序。如果未安装,SDK 会将用户切换到他们的默认浏览器并打开 Feed 对话框。
推荐阅读
- java - 处理 - 将 mousePressed 添加到具有 100 个球的动画中
- python - Discord.py 为 on_member_join 事件启用 Intent
- php - 如何自定义我的 Laravel 电子邮件验证消息
- reactjs - React Table 未更新其值
- java - 导出到可运行 jar 后无法读取图像
- c - 两个结构初始化之间的区别
- azure-devops - 2+ Gb 工件的下载管道工件任务超过 100%
- java - Drools:比较 Drools 决策表中相同类型的对象
- rust - 转换选项
到一个选项 > - node.js - nodejs/npm - 使用 vpn 时包不工作