[flutter] 플러터 앱의 딥링크 처리 방법

플러터는 강력한 크로스 플랫폼 앱 개발 프레임워크로, 안드로이드와 iOS 모두에서 실행되는 앱을 개발할 수 있습니다. 이번 포스트에서는 플러터 앱에서 딥링크를 처리하는 방법에 대해 알아보겠습니다.

1. 딥링크란?

딥링크는 특정한 콘텐츠 또는 기능으로 사용자를 직접 연결하는 링크입니다. 일반적으로 웹 사이트에서 사용되는 링크와 달리 딥링크는 앱으로 연결되어 앱의 특정 화면을 열 수 있습니다. 예를 들어, 페이스북 메신저나 이메일 앱에서 링크를 클릭하면 해당 채팅방이나 이메일을 바로 열 수 있습니다.

2. 플러터 앱에서 딥링크 처리하기

플러터에서 딥링크를 처리하기 위해서는 uni_links 패키지를 사용할 수 있습니다. 이 패키지는 앱이 실행되고 있는 동안에도 딥링크를 수신할 수 있도록 도와줍니다.

먼저, uni_links 패키지를 pubspec.yaml 파일에 추가해야 합니다. 아래와 같이 dependencies에 uni_links를 추가하세요.

dependencies:
  uni_links: ^0.5.0

그리고 패키지를 설치하기 위해 터미널에서 다음 명령어를 실행하세요.

flutter pub get

2.2 딥링크 이벤트 수신하기

플러터 앱에서 딥링크 이벤트를 수신하려면 앱이 실행되는 시점에 uni_links를 초기화해야 합니다. 일반적으로 main.dart 파일에서 이 작업을 수행합니다.

먼저, uni_links 패키지를 임포트하세요.

import 'package:uni_links/uni_links.dart';
import 'package:flutter/services.dart' show PlatformException;

그리고 main() 함수 안에서 initUniLinks() 메소드를 호출하여 uni_links를 초기화하세요.

void main() {
  initUniLinks(); // uni_links 초기화하기
  runApp(MyApp());
}

이제 앱이 실행되면 uni_links는 딥링크 이벤트를 수신할 준비가 되었습니다.

2.3 딥링크 이벤트 핸들링하기

실제로 딥링크 이벤트를 핸들링하기 위해서는 getUriLinksStream()을 사용하여 스트림을 구독해야 합니다. 이 스트림은 딥링크가 수신되면 알림을 받을 수 있도록 해줍니다.

아래는 예시 코드입니다.

import 'package:uni_links/uni_links.dart';

void initUniLinks() async {
  // 앱이 시작되면 딥링크 이벤트를 수신하는 스트림 구독
  try {
    await getUriLinksStream().listen((Uri uri) {
      // 딥링크 처리 로직 구현
      // uri를 기반으로 앱 내의 특정 화면을 엽니다.
    });
  } on PlatformException {
    // 딥링크 수신 중 에러가 발생한 경우 처리
  }
}

이제 딥링크 이벤트가 발생하면 uri 객체를 통해 딥링크의 정보를 얻을 수 있습니다. 예를 들어, uri.path를 사용하여 딥링크 경로를 확인할 수 있습니다.

3. 마무리

위에서는 플러터 앱에서 딥링크를 처리하는 방법에 대해 알아보았습니다. uni_links 패키지를 사용하여 플러터 앱에서 딥링크를 수신하고 처리하는 것은 간단하며, 사용자 경험을 향상시킬 수 있는 중요한 기능입니다. 플러터를 사용하여 앱을 개발할 때 딥링크를 고려해보세요!

참고 자료