【发布时间】:2019-04-04 06:29:00
【问题描述】:
在标题中 FACEBBOK_PAGE_ID 是我的 Facebook 页面的整数 ID。
在我的 android 应用程序中,单击按钮说“在 facebook 上关注我们”,我必须重定向应用程序 -
1. 如果安装了 facebook 应用程序并且用户登录 - 重定向到 facebook 页面 facebook 应用程序。
2. 如果安装了 facebook 应用但用户未登录 - 重定向到 facebook 应用中的 facebook 登录页面。
3. 如果未安装 facebook 应用程序 - 在浏览器中打开 facebook 页面 URL。
我用以下代码做到了这一点
@OnClick(R.id.rl_follow_us_on_fb)
public void onClickFollowUs(){
Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
String facebookUrl = getFacebookPageURL(mParentActivity);
facebookIntent.setData(Uri.parse(facebookUrl));
startActivity(facebookIntent);
}
获取facebook页面url的函数是-
public String getFacebookPageURL(Context context) {
PackageManager packageManager = context.getPackageManager();
try {
PackageInfo packageInfo =context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
if (packageInfo != null) {
if (packageInfo.applicationInfo.enabled) {
return "fb://page/FACEBOOK_PAGE_ID";
} else {
return FACEBOOK_URL;
}
} else {
return FACEBOOK_URL;
}
} catch (PackageManager.NameNotFoundException e) {
return FACEBOOK_URL; //normal web url
}
}
这工作正常,但是当用户启用 Facebook 应用程序(如果它被禁用)并单击“在 Facebook 上关注我们”按钮时应用程序崩溃,并出现以下崩溃:E/UncaughtException: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=fb://page/FACEBOOK_PAGE_ID }
【问题讨论】:
标签: android