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

코틀린(Kotlin)으로 안드로이드 앱에서 페이스북 페이지 여는 방법

개요

이 예제는 코틀린(Kotlin)을 사용해 안드로이드 앱에서 페이스북 페이지를 여는 방법을 단계별로 보여줍니다. 핵심 아이디어는 기기에 페이스북 공식 앱이 설치되어 있는지 확인한 뒤, 설치되어 있으면 페이스북 딥링크(fb://page/...)로 네이티브 앱을 실행하고, 설치되어 있지 않으면 웹 브라우저를 통해 해당 페이지 URL을 여는 것입니다.

동작 원리

getOpenFacebookIntent() 함수는 PackageManager를 통해 com.facebook.katana(페이스북 앱의 패키지명)가 설치되어 있는지 검사합니다. 설치된 경우 Intent.ACTION_VIEW와 fb:// 스킴을 사용해 페이스북 앱 내에서 페이지를 바로 열고, 예외가 발생하면(앱이 없는 경우) 일반 https URL로 대체하여 브라우저에서 엽니다.

1단계 — 새 프로젝트 생성

안드로이드 스튜디오에서 File ⇒ New Project 메뉴로 이동한 후, 필요한 모든 정보를 입력하여 새 프로젝트를 생성합니다.

2단계 — 레이아웃 파일(activity_main.xml) 작성

res/layout/activity_main.xml에 아래 코드를 추가합니다. 버튼 하나를 배치하고 android:onClick 속성으로 fbClick 메서드와 연결합니다.

<?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="페이스북 열기" />
</LinearLayout>

3단계 — MainActivity.kt 코드 작성

src/MainActivity.kt에 아래 코드를 추가합니다.

import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    fun fbClick(view: View) {
        startActivity(getOpenFacebookIntent())
    }

    private fun getOpenFacebookIntent(): Intent? {
        return try {
            // 페이스북 앱 설치 여부 확인
            packageManager.getPackageInfo("com.facebook.katana", 0)
            // 설치되어 있으면 페이스북 앱으로 페이지 열기
            Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/426253597411506"))
        } catch (e: Exception) {
            // 미설치 시 웹 브라우저로 열기
            Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/appetizerandroid"))
        }
    }
}

4단계 — AndroidManifest.xml 설정

androidManifest.xml에 인터넷 권한과 함께 아래 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.q11">

    <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>

참고: 안드로이드 11(API 30) 이상 패키지 가시성

안드로이드 11부터는 다른 앱의 설치 여부를 조회하려면 매니페스트에 <queries> 요소를 선언해야 합니다. targetSdkVersion이 30 이상이라면 <manifest> 태그 안에 아래 코드를 추가하세요.

<queries>
    <package android:name="com.facebook.katana" />
</queries>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 기기가 컴퓨터에 연결되어 있다고 가정합니다. 안드로이드 스튜디오에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run 아이콘코틀린(Kotlin)으로 안드로이드 앱에서 페이스북 페이지 여는 방법을 클릭하세요. 목록에서 자신의 모바일 기기를 선택하면, 기기 화면에 아래와 같은 기본 화면이 표시됩니다.

코틀린(Kotlin)으로 안드로이드 앱에서 페이스북 페이지 여는 방법

코틀린(Kotlin)으로 안드로이드 앱에서 페이스북 페이지 여는 방법

버튼을 누르면 페이스북 앱이 설치된 기기에서는 페이스북 앱이 실행되며 해당 페이지가 열리고, 설치되어 있지 않은 기기에서는 기본 브라우저를 통해 같은 페이지가 열리는 것을 확인할 수 있습니다.