1. ホーム
  2. android

[解決済み] AndroidアプリからFacebookページを開くには?

2022-04-24 23:12:19

質問

Androidアプリから、Facebookの公式アプリにあるプロフィールへのリンクを開きたいのですが(もちろんアプリがインストールされていればの話ですが)。iPhoneの場合は fb:// の URL スキームがありますが、私の Android デバイスで同じことをしようとすると ActivityNotFoundException .

コードからFacebookの公式アプリでFacebookのプロフィールを開くことは可能ですか?

どのように解決するのですか?

Facebook バージョン 11.0.0.11.23 (3002850)の場合 fb://profile/fb://page/ が動作しなくなった。Facebookアプリを逆コンパイルしてみると fb://facewebmodal/f?href=[YOUR_FACEBOOK_PAGE] . 以下は、私が実運用で使っている方法です。

/**
 * <p>Intent to open the official Facebook app. If the Facebook app is not installed then the
 * default web browser will be used.</p>
 *
 * <p>Example usage:</p>
 *
 * {@code newFacebookIntent(ctx.getPackageManager(), "https://www.facebook.com/JRummyApps");}
 *
 * @param pm
 *     The {@link PackageManager}. You can find this class through {@link
 *     Context#getPackageManager()}.
 * @param url
 *     The full URL to the Facebook page or profile.
 * @return An intent that will open the Facebook page/profile.
 */
public static Intent newFacebookIntent(PackageManager pm, String url) {
  Uri uri = Uri.parse(url);
  try {
    ApplicationInfo applicationInfo = pm.getApplicationInfo("com.facebook.katana", 0);
    if (applicationInfo.enabled) {
      // http://stackoverflow.com/a/24547437/1048340
      uri = Uri.parse("fb://facewebmodal/f?href=" + url);
    }
  } catch (PackageManager.NameNotFoundException ignored) {
  }
  return new Intent(Intent.ACTION_VIEW, uri);
}