아무나 빌려가세요

flutter push알림 oneSignal 적용 (1) 본문

플러터

flutter push알림 oneSignal 적용 (1)

빌라노바 2022. 4. 13. 22:56

푸쉬알림은 파이어베이스에 제공하는 방법도 있지만 oneSignal이 훨씬 적용하기 쉬운것같아 글을 쓴다.

1. 먼저 https://app.onesignal.com/apps 에 접속해 회원가입을하고 푸쉬알림을 적용하고자 하는 앱을 만든다.

2. 상단 Settings 클릭후 NATIVE APP Platform 에서 구글과 애플 항목을 활성화 한다. (애플은 p.12파일 필요, 구글은 파이어베이스의 serverkey가 필요하다.

3. https://pub.dev/packages/onesignal_flutter

 [onesignal_flutter | Flutter Package

OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your flutter app with OneSignal

pub.dev](https://pub.dev/packages/onesignal_flutter)

패키지를 설치한다.

4. flutter에 기기를 등록할 함수를 만든다.

앱아이디를 등록해야 하는데 앱아이디는 이곳에서 확인할 수 있다.


static Future<void\> initPlatform() async {

    await OneSignal.shared.setAppId("app id");

  //알림 허가 창 띄우기(ios에선 안드로이드와 달리 허가를 눌러야만 구독이 된다.
  await OneSignal.shared
        .promptUserForPushNotificationPermission()
        .then((accepted) {
      print("Accepted permission: $accepted");
    });
  

    await OneSignal.shared.getDeviceState().then(

          (value) => {

            print('::::: one signal :::: ${value!.userId}'),

          },

        );

//등록이 성공하면 userId를 얻을 수있다.

  }
  
  // main.dart에서 홈에 해당하는 클래스에 함수를 적용한다.
  @override
  void initState() {
    PushNotificationAPI.initPlatform();
    super.initState();
  }

기기에서 접속하면 userId가 뜨는것을 확인 할 수 있고 홈페이지 상단탭의 Messages에서 테스트 해볼 수 있다.

알람이 가려면 구독이 되어야 하는데 각 플랫폼이 활성화 되는데 시간이 걸리는 것 같다. 

상단 탭 Audience에서 유저목록을 확인 할 수 있는데 구독이 되지 않은 유저는 알람이 가지 않는다.

다음엔 nodejs에서 알림을 보내는방법과 플러터에 다른기능이 무엇이 있는지 알아보려고 한다.