首页 > 解决方案 > 使用浏览器在选择器中打开 facebook 链接

问题描述

Сan 我们打开 facebook 链接,以便查看内容的应用程序的菜单选择仍然和 facebook 浏览器?标准启动

fun openLink(link: String) {
    Intent(Intent.ACTION_VIEW).apply {
        flags = Intent.FLAG_ACTIVITY_NEW_TASK
        data = Uri.parse(link)

        context.startActivity( this)
    }
 }

只打开浏览器,并且某些浏览器,例如 chrome 和 edge,运行另一个浏览器,然后出现 facebook(如果已安装),我唯一能找到的是直接打开指向 facebook 的链接,如果已安装,没有选择应用程序打开链接的可能性

Intent(Intent.ACTION_VIEW).apply {
            flags = Intent.FLAG_ACTIVITY_NEW_TASK
            try {
                val applicationInfo: ApplicationInfo = 
                       packageManager.getApplicationInfo("com.facebook.katana", 0)
                if (applicationInfo.enabled) {
                    // http://stackoverflow.com/a/24547437/1048340
                    data = Uri.parse("fb://facewebmodal/f?href=https://facebook.com/")
                }
            } catch (ignored: PackageManager.NameNotFoundException) {
                data = Uri.parse("https://facebook.com/")
            }

            startActivity(this)
        }
  1. 我有的
  2. 打开 Facebook 链接后我想要什么以及 chorme 发送什么

标签: androidfacebookandroid-intent

解决方案


你熟悉EXTRA_INITIAL_INTENTS吗?创建两个单独Intent的 s(如果 fb 应用程序存在并启用)并加入它们

Intent chooserIntent = Intent.createChooser(browserIntent, "Open in...");
if (fbIntent != null) {
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { fbIntent });
}
startActivity(chooserIntent);

更多信息在这里这里


推荐阅读