我如何开始打算在手机上打开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”,它总是导航到我的页面。永远对我而不是其他。
我怎么能这样做?
答案 0 :(得分:11)
这是最好和最简单的方法。 只需按照代码
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);
}
答案 1 :(得分:4)
我遇到了完全相同的问题,发送了用户ID但由于某种原因,我的个人资料始终打开而不是朋友的个人资料。
问题在于,如果您传递代表Facebook UID的String
对象的Long
,或者甚至是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);
好享受并希望这会有所帮助: - )
马克西姆
答案 2 :(得分:1)
试试这段代码:
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)));
}
答案 3 :(得分:0)
此解决方案将不再有效。 Facebook应用程序的新版本不再支持那种意图了。请参阅here错误报告
新的解决方案是使用iPhone方案机制(是的,facebook决定在Android中支持iPhone机制,而不是Android的隐式意图机制)。
因此,要使用用户个人资料打开Facebook应用,您需要做的就是:
String facebookScheme = "fb://profile/" + facebookId;
Intent facebookIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(facebookScheme));
startActivity(facebookIntent);
如果您正在寻找其他行动,您可以使用following page进行所有可用的操作(/您必须测试它,因为我没有找到关于此的官方出版物)