从android应用程序打开facebook页面?
我如何开始在手机上打开Facebook应用程序并导航到Facebook中的首选页面 我试过:从android应用程序打开facebook页面?,android,android-intent,facebook-android-sdk,Android,Android Intent,Facebook Android Sdk,我如何开始在手机上打开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.startActivit
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”,它总是导航到我的页面。总是对我,而不是对其他人
我怎么能做到这一点呢?我遇到了完全相同的问题,发送了用户id,但由于某种原因,我的个人资料总是打开,而不是朋友的个人资料 问题是,如果您传递表示Facebook UID的
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);
好的,享受并希望这有帮助:-)
Maxim此解决方案不再有效。新版本的facebook应用程序不再支持这种意图。请参阅错误报告
新的解决方案是使用iphonescheme机制(是的,facebook决定在Android中支持iPhone机制,而不是Android的隐式意图机制)
因此,要使用用户档案打开facebook应用程序,您需要做的就是:
String facebookScheme = "fb://profile/" + facebookId;
Intent facebookIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(facebookScheme));
startActivity(facebookIntent);
如果您正在寻找其他操作,您可以使用for all available actions(/您必须对其进行测试,因为我没有找到关于此的facebook官方出版物)以下是最好且简单的方法。
只需遵循代码即可
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);
}
public final void Facebook(){
最后一个字符串urlFb=“fb://page/”+yourpageid;
意向意向=新意向(意向.行动\视图);
setData(Uri.parse(urlFb));
//如果安装了Facebook应用程序,请使用该应用程序启动浏览器
最终PackageManager PackageManager=getPackageManager();
列表=
packageManager.QueryInputActivities(意图,
PackageManager.MATCH_(仅限默认值);
if(list.size()==0){
最终字符串urlBrowser=”https://www.facebook.com/pages/“+pageid;
setData(Uri.parse(urlBrowser));
}
星触觉(意向);
}
尝试以下代码:
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)));
}
String facebook url=”https://www.facebook.com/";
试一试{
int versionCode=getPackageManager().getPackageInfo(“com.facebook.katana”,0).versionCode;
如果(版本代码>=3002850){
Uri=Uri.parse(“fb://facewebmodal/f?href=“+facebookUrl”);
startActivity(新意图(Intent.ACTION_视图,uri));
}否则{
Uri=Uri.parse(“fb://page/”);
startActivity(新意图(Intent.ACTION_视图,uri));
}
}捕获(PackageManager.NameNotFounde异常){
startActivity(新的意图(Intent.ACTION_视图,Uri.parse(facebookUrl));
}
此解决方案不再有效。您可以在下面的链接中找到答案嘿,这不是一个好的解决方案,因为它显式使用ProfileTabHostActivity。在未来版本中,Facebook可能会决定重命名该活动或将其从应用程序中删除。然后你的解决方案就不起作用了。它起作用了,但在新的facebook更新中,页面的链接是“this代替”;