Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

안드로이드 앱에서 페이스북 페이지를 여는 방법 – 단계별 구현 가이드

이 글에서는 안드로이드 앱 내에서 페이스북 페이지를 여는 방법을 단계별로 알아봅니다. 핵심 아이디어는 간단합니다. 먼저 기기에 페이스북 공식 앱(com.facebook.katana)이 설치되어 있는지 확인하고, 설치되어 있다면 fb:// 프로토콜을 사용해 네이티브 앱으로 페이지를 열고, 설치되어 있지 않다면 웹 브라우저를 통해 해당 URL을 여는 방식입니다.

1단계: 새 프로젝트 생성

Android Studio를 실행한 후 File → New Project 메뉴로 이동하여 새 프로젝트를 생성합니다. 프로젝트 생성에 필요한 모든 세부 정보(프로젝트 이름, 패키지명, 최소 SDK 버전 등)를 입력합니다.

2단계: 레이아웃 파일 작성 (res/layout/activity_main.xml)

버튼 하나를 포함하는 간단한 LinearLayout 레이아웃을 작성합니다. 버튼 클릭 시 fbClick 메서드가 호출되도록 onClick 속성을 지정합니다.

<?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단계: 메인 액티비티 코드 작성 (src/MainActivity.java)

핵심 로직은 getOpenFacebookIntent() 메서드에 있습니다. PackageManager를 통해 페이스북 앱의 패키지 정보를 조회하고, 성공하면 fb://page/{페이지ID} URI로 인텐트를 생성해 네이티브 앱을 실행합니다. 예외가 발생하면(즉, 페이스북 앱이 미설치 상태라면) 일반 HTTPS URL로 대체하여 브라우저에서 열리도록 처리합니다.

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"));
        }
    }
}

참고: fb://page/ 뒤에 오는 숫자는 열고자 하는 페이스북 페이지의 고유 ID입니다. 실제 서비스에 적용할 때는 본인의 페이지 ID로 교체해야 하며, 예외 처리 시 사용하는 URL 역시 자신의 페이지 주소로 변경하는 것이 좋습니다.

4단계: 매니페스트 설정 (androidManifest.xml)

외부 링크와 페이스북 딥링크를 처리하려면 인터넷 권한이 필요합니다. uses-permission 태그로 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 Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run 아이콘을 클릭하세요. 실행 옵션 목록에서 본인의 모바일 기기를 선택하면, 앱이 기기에 설치되어 실행됩니다.

앱이 실행되면 화면에 'open Facebook' 버튼이 표시됩니다. 버튼을 누르면 페이스북 앱이 설치된 경우에는 해당 페이지가 네이티브 앱에서 바로 열리고, 설치되어 있지 않은 경우에는 기본 브라우저를 통해 페이스북 웹 페이지가 열립니다.