我试图使用来自SO的一些代码,但它失败了:
这些是uri应该打开应用程序的正确部分。
facebook://facebook.com/info?user=544410940 (id of the user. "patrick.boos" won't work)
facebook://facebook.com/wall?user=544410940 (will only show the info if you have added it as
我想要的是在我指定的个人资料上打开Facebook应用。这是我尝试的代码。该号码是个人资料的UID。
String uri = "facebook://facebook.com/wall?user=417079614970109";
intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(intent);
是折旧还是什么?我现在如何完成这项任务?
答案 0 :(得分:52)
实际上它看起来像这样。这些URI仅适用于最新版本的facebook应用程序。这就是我们尝试捕获的原因。
public static Intent getOpenFacebookIntent(Context context) {
try {
context.getPackageManager()
.getPackageInfo("com.facebook.katana", 0); //Checks if FB is even installed.
return new Intent(Intent.ACTION_VIEW,
Uri.parse("fb://profile/254175194653125")); //Trys to make intent with FB's URI
} catch (Exception e) {
return new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.facebook.com/arkverse")); //catches and opens a url to the desired page
}
}
在您的活动中,要打开它,请按以下方式调用它:
Intent facebookIntent = getOpenFacebookIntent(this);
startActivity(facebookIntent);
答案 1 :(得分:11)
这不容易吗? 例如在onClickListener中?
try{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/426253597411506"));
startActivity(intent);
}catch(Exception e){
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/appetizerandroid")));
}
获取您的ID(大号)
答案 2 :(得分:10)
这不再有效
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/someProfile"));
请尝试改为
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href=https://www.facebook.com/someProfile"));
答案 3 :(得分:2)
目前暂时不可能, Facebook 已删除此功能
答案 4 :(得分:2)
关于此问题有很多疑问,但这段代码对我有用.Facebook改变了政策,所以更多细节请查看这个Facebook官方 GRAPH API EXPLORER PAGE
Intent intent = null;
try {
getPackageManager().getPackageInfo("com.facebook.katana", 0);
String url = "https://www.facebook.com/"+idFacebook;
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href="+url));
} catch (Exception e) {
// no Facebook app, revert to browser
String url = "https://facebook.com/"+idFacebook;
intent = new Intent(Intent.ACTION_VIEW);
intent .setData(Uri.parse(url));
}
this.startActivity(intent);
答案 5 :(得分:1)
要做到这一点,我们需要“Facebook页面ID”,你可以得到它:
你可以这样做:
String facebookId = "fb://page/<Facebook Page ID>";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(facebookId)));
答案 6 :(得分:0)
对于Facebook页面使用方式如下:http://fb://page/87268309621xxxx 对于个人ID使用方式如下:http://fb://profile/87268309621xxxx