打开从Android应用Facebook页面?(Open a facebook page from

2019-06-23 21:57发布

我如何开始的意图,在手机上打开一个Facebook应用程序,并导航到Facebook上首选页面?

我试过了:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity");
intent.putExtra("extra_user_id", "123456789l");
this.startActivity(intent);

好吧,不管我写为“1234567891”,它总是浏览到我的网页。 总是对我和其他人没有。

我怎么能这样做?

Answer 1:

我有完全相同的问题,发送的用户ID,但由于某些原因,我的个人资料总是打开的,而不是朋友的个人资料。

问题是,如果传递的String中的Long对象,表示Facebook的UID,甚至long基本类型,其目的将无法再阅读。 你需要传递一个真正的Long

因此,完整的代码是:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity");
    Long uid = new Long("123456789");
    intent.putExtra("extra_user_id", uid);
    startActivity(intent);

好的享受,并希望这有助于:-)

格言



Answer 2:

这里是做最好的,简单的方法。 只需按照代码

public final void Facebook() {
        final String urlFb = "fb://page/"+yourpageid;
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(urlFb));

        // If Facebook application is installed, use that else launch a browser
        final PackageManager packageManager = getPackageManager();
        List<ResolveInfo> list =
            packageManager.queryIntentActivities(intent,
            PackageManager.MATCH_DEFAULT_ONLY);
        if (list.size() == 0) {
            final String urlBrowser = "https://www.facebook.com/pages/"+pageid;
            intent.setData(Uri.parse(urlBrowser));
        }

        startActivity(intent);
    }


Answer 3:

试试这个代码:

String facebookUrl = "https://www.facebook.com/<id_here>";
    try {
        int versionCode = getPackageManager().getPackageInfo("com.facebook.katana", 0).versionCode;
        if (versionCode >= 3002850) {
            Uri uri = Uri.parse("fb://facewebmodal/f?href=" + facebookUrl);
               startActivity(new Intent(Intent.ACTION_VIEW, uri));
        } else {
            Uri uri = Uri.parse("fb://page/<id_here>");
            startActivity(new Intent(Intent.ACTION_VIEW, uri));
        }
    } catch (PackageManager.NameNotFoundException e) {
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(facebookUrl)));
    }


Answer 4:

该解决方案将不再工作。 Facebook的应用程序的新版本已经不支持这样的意图的。 见这里的bug报告

新的解决方案是使用iPhone的计划机制(是的,Facebook的决定支持Android中的iPhone,而不是机制的Android的隐含意图机制)。

因此,为了与用户的配置文件打开Facebook的应用程序,所有你需要做的是:

String facebookScheme = "fb://profile/" + facebookId;
Intent facebookIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(facebookScheme)); 
startActivity(facebookIntent);

如果您正在寻找其他的行动,你可以使用以下页面的所有可用操作(/你必须虽然测试它,因为我没有找到关于这个的Facebook的官方出版物)



文章来源: Open a facebook page from android app?