Android
 Computer >> コンピューター >  >> プログラミング >> Android

【Android開発】アプリからFacebookページを開く方法をわかりやすく解説

本記事では、AndroidアプリからFacebookページを開く方法を、実際のコード例とともに段階的に解説します。

ポイントは、Facebook公式アプリが端末にインストールされているかどうかを判定し、インストール済みであれば「fb://」スキームを使ってアプリ内でページを直接開き、未インストールの場合はブラウザ経由でWeb版FacebookのURLを開く、という処理を実装することです。

実装手順

ステップ1:新規プロジェクトの作成

まず、Android Studioで新しいプロジェクトを作成します。メニューからFile ⇒ New Projectを選択し、必要な項目を入力してプロジェクトを作成してください。

ステップ2:レイアウトファイル(activity_main.xml)の編集

次に、res/layout/activity_main.xmlに以下のコードを追加します。ここでは、タップするとFacebookページを開くボタンを1つ配置しています。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
   android:id="@+id/rlMain"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_margin="16dp"
   android:orientation="vertical">
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="center_horizontal"
      android:layout_marginTop="30dp"
      android:layout_marginBottom="30dp"
      android:onClick="fbClick"
      android:text="open Facebook" />
</LinearLayout>

ステップ3:MainActivity.javaの編集

続いて、src/MainActivity.javaに以下のコードを追加します。

package app.com.sample;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }
   public void fbClick(View view) {
      startActivity(getOpenFacebookIntent());
   }
   public Intent getOpenFacebookIntent() {
      try {
         getPackageManager().getPackageInfo("com.facebook.katana", 0);
         return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/426253597411506"));
      } catch (Exception e) {
         return new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/appetizerandroid"));
      }
   }
}

このコードの仕組みを簡単に説明します。getPackageManager().getPackageInfo("com.facebook.katana", 0)によって、Facebook公式アプリ(パッケージ名:com.facebook.katana)が端末に存在するかどうかをチェックしています。アプリが見つかれば「fb://page/{ページID}」というURIスキームでIntentを発行し、Facebookアプリ内で該当ページを直接表示します。例外が発生した場合(=アプリが未インストールの場合)は、catchブロックで通常のHTTPS URLを指定したIntentを返し、ブラウザでFacebookページを開きます。

ステップ4:AndroidManifest.xmlの編集

最後に、androidManifest.xmlに以下のコードを追加します。インターネット通信を行うため、INTERNETパーミッションの宣言が必要です。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
   package="app.com.sample">
   <uses-permission android:name="android.permission.INTERNET" />
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

アプリの実行と動作確認

それでは、実際にアプリを起動してみましょう。ここでは、実機のAndroidスマートフォンがPCに接続されているものとして説明します。

Android Studioでプロジェクト内のいずれかのアクティビティファイルを開き、ツールバーにあるRun(実行)アイコン 【Android開発】アプリからFacebookページを開く方法をわかりやすく解説 をクリックします。デバイス選択画面が表示されたら、接続中のモバイルデバイスを選択して実行してください。

アプリが起動すると、まず次のようなデフォルト画面が表示されます。

【Android開発】アプリからFacebookページを開く方法をわかりやすく解説

画面上の「open Facebook」ボタンをタップすると、Facebookアプリがインストール済みの端末ではFacebookアプリが起動して対象ページが表示され、未インストールの端末ではブラウザで該当ページが開きます。

【Android開発】アプリからFacebookページを開く方法をわかりやすく解説

このように、パッケージの存在チェックとURIスキームを組み合わせることで、ユーザーの環境に応じて最適な方法でFacebookページを表示できるようになります。自社アプリやサービスのSNS導線を設置したい場合にぜひ活用してください。

  1. PCからAndroidアプリをインストールする方法|スマホに触れずにGoogle Play経由で導入

    Webを閲覧中に気になるAndroidアプリを見つけたものの、わざわざ立ち上がってスマホを探し、Google Playストアを開いて検索してインストールするのは面倒だと感じたことはありませんか?実は、PCから直接Androidアプリをインストールすることができます。この記事では、スマホに一切触れることなく新しいアプリをAndroid端末に導入する方法を詳しく解説します。 始める前に確認しておくこと この方法を使うには、PCとAndroidスマホの両方で同じGoogleアカウントにサインインしている必要があります。事前に両端末のアカウントを揃えておきましょう。AndroidでのGoogle

  2. Facebookアカウントからアプリやゲームの連携を解除する方法【手順を解説】

    Facebookは世界で最も利用されているSNSの一つです。友人や家族との交流だけでなく、オンラインゲームで友達と競い合う場としても活用されています。Facebookアカウントに、少なくとも1件はゲームの招待リクエストが届いた経験があるのではないでしょうか。 これらのリクエストには、友人がプレイしているゲームへの参加を促すものや、ゲームを続けるために「ライフ」を送ってほしいという依頼などがあります。いずれの場合もゲームのダウンロードが必要で、ダウンロードすると「進行状況を保存するため」として、自動的にFacebookアカウントと連携されます。 さらに、さまざまなアプリやゲームが「Facebo