我正在尝试使用特定用户ID在我的Android应用中打开某个Facebook个人资料页面。 我的代码打开Facebook应用程序,如果它已安装,否则打开webbrowser。 它工作正常,除非安装Facebook应用程序并关闭它。 在那种情况下,它只是打开新闻源页面而不是个人资料页面。当Facebook应用程序在后台打开时,它会成功重定向到所需的个人资料页面。我怎么解决这个问题?还有官方的facebook文档描述了访问facebook app URI的方法吗?
try{
this.getPackageManager()
.getPackageInfo("com.facebook.katana", 0); //Checks if FB is even installed.
final String facebookScheme = String.format("fb://profile/%s", user2FbID);
final Intent facebookIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(facebookScheme));
facebookIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY
| Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(facebookIntent);
}catch (Exception e) {
String facebookScheme = "https://m.facebook.com/" + user2FbID;
Intent facebookIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(facebookScheme));
startActivity(facebookIntent);
}
答案 0 :(得分:4)
试试这个,为我工作
try
{
Intent followIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/<your profile_id>"));
startActivity(followIntent);
final Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run() {
Intent followIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/<your profile_id>"));
startActivity(followIntent);
}
}, 1000 * 2);
}
catch (Exception e)
{
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/<user_name>")));
String errorMessage = (e.getMessage()==null)?"Message is empty":e.getMessage();
Log.e("Unlock_ScreenActivity:FacebookAppNotFound" ,errorMessage);
}
答案 1 :(得分:4)
这也发生在我身上。更新了Facebook应用程序,它现在已经解决了,似乎与Facebook有关。它现在正常工作。
以下是我使用的代码:
public static Intent getOpenFacebookIntent(Context context) {
try{
// open in Facebook app
context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/<profile_id>"));
} catch (Exception e) {
// open in browser
return new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/<profile_id>"));
}
}