왜 인지는 모르고 notification 을 잘 쓰려면 이걸 넣어야한다길래 넣었는데,
notification 으로 다양한 기능을 넣어줄 수 있다는 걸 알게 되었다!ㅎㅎ
.
https://pub.dev/packages/flutter_local_notifications#ios-pending-notifications-limit
https://www.youtube.com/watch?v=bRy5dmts3X8&t=333s
https://www.youtube.com/watch?v=X3tAGnGc_t0&t=120s
Caveats and limitations (주의사항 및 제한사항 )
The cross-platform facing API exposed by the FlutterLocalNotificationsPlugin class doesn't expose platform-specific methods as its goal is to provide an abstraction for all platforms. As such, platform-specific configuration is passed in as data. There are platform-specific implementations of the plugin that can be obtained by calling the resolvePlatformSpecificImplementation.
An example of using this is provided in the section on requesting permissions on iOS. In spite of this, there may still be gaps that don't cover your use case and don't make sense to add as they don't fit with the plugin's architecture or goals. Developers can fork or maintain their own code for showing notifications in these situations.
FlutterLocalNotificationsPlugin 클래스에 의해 노출된 크로스 플랫폼 대면 API는 모든 플랫폼에 대한 추상화를 제공하는 것이 목표이기 때문에 플랫폼별 메서드를 노출하지 않습니다. 이와 같이 플랫폼별 구성은 데이터로 전달됩니다. resolvePlatformSpecificImplementation을 호출하여 얻을 수 있는 플러그인의 플랫폼별 구현이 있습니다.
이 방법의 예는 iOS에 대한 권한 요청 섹션에 나와 있습니다. 그럼에도 불구하고, 여전히 당신의 사용 사례를 다루지 못하고 플러그인의 아키텍처나 목표와 맞지 않기 때문에 추가하는 것이 타당하지 않을 수 있다. 개발자는 이러한 상황에서 알림을 표시하기 위해 자체 코드를 포크하거나 유지할 수 있습니다.
Compatibility with firebase_messaging (firebase_messaging과의 호환성 )
Previously, there were issues that prevented this plugin working properly with the firebase_messagingplugin. This meant that callbacks from each plugin might not be invoked. This has been resolved since version 6.0.13 of the firebase_messaging plugin so please make sure you are using more recent versions of the firebase_messaging plugin and follow the steps covered in firebase_messaging's readme file located here
이전에는 이 플러그인이 firebase_messaging 플러그인에서 제대로 작동하지 않는 문제가 있었습니다. 즉, 각 플러그인의 콜백이 호출되지 않을 수 있습니다. 이 문제는 firebase_messaging 플러그인의 6.0.13 버전부터 해결되었으므로 최신 버전의 firebase_messaging 플러그인을 사용하고 있는지 확인하고 여기에 있는 firebase_messaging의 readme 파일에 설명된 단계를 따르십시오.
Scheduled Android notifications (예약된 Android 알림)
Some Android OEMs have their own customised Android OS that can prevent applications from running in the background. Consequently, scheduled notifications may not work when the application is in the background on certain devices (e.g. by Xiaomi, Huawei). If you experience problems like this then this would be the reason why. As it's a restriction imposed by the OS, this is not something that can be resolved by the plugin. Some devices may have setting that lets users control which applications run in the background. The steps for these can vary but it is still up to the users of your application to do given it's a setting on the phone itself.
It has been reported that Samsung's implementation of Android has imposed a maximum of 500 alarms that can be scheduled via the Alarm Manager API and exceptions can occur when going over the limit.
일부 Android OEM은 애플리케이션을 백그라운드에서 실행하는 것을 방지할 수 있는 자체 사용자 지정 Android OS를 가지고 있습니다. 따라서 애플리케이션이 특정 장치(예: 샤오미, 화웨이)에서 백그라운드에 있을 때 예약된 알림이 작동하지 않을 수 있습니다. 만약 당신이 이런 문제를 경험한다면, 이것이 그 이유일 것입니다. OS에 의해 부과된 제한 사항이기 때문에, 이것은 플러그인으로 해결할 수 있는 것이 아니다. 일부 장치에는 백그라운드에서 실행되는 응용 프로그램을 사용자가 제어할 수 있는 설정이 있을 수 있습니다. 이러한 단계는 다를 수 있지만 전화 자체의 설정인 경우 여전히 응용프로그램의 사용자에게 달려 있습니다.
삼성의 안드로이드 구현으로 알람 매니저 API를 통해 예약할 수 있는 알람이 최대 500개까지 부과됐고 한도를 초과할 경우 예외가 발생할 수 있는 것으로 알려졌다.
iOS pending notifications limit (iOS Pending 알림 제한 )
There is a limit imposed by iOS where it will only keep 64 notifications that will fire the soonest.
가장 빨리 실행될 64개의 알림만 보관하는 iOS에 의해 부과되는 제한이 있다.
Scheduled notifications and daylight saving time (예약된 알림 및 일광 절약 시간 )
The notification APIs used on iOS versions older than 10 (aka the UILocalNotification APIs) have limited supported for time zones.
10보다 오래된 iOS 버전에서 사용되는 알림 API(UIL 로컬 알림 API)는 Timezone 지원에 제한이 있습니다.
Updating application badge (응용 프로그램 배지를 업데이트 하기)
This plugin doesn't provide APIs for directly setting the badge count for your application. If you need this for your application, there are other plugins available, such as the flutter_app_badger plugin.
이 플러그인은 응용 프로그램의 배지 수를 직접 설정하는 API를 제공하지 않습니다. 애플리케이션에 필요한 경우 flatter_app_badger 플러그인과 같은 다른 플러그인을 사용할 수 있습니다.
Custom notification sounds (사용자 지정 알림 소리)
iOS and macOS restrictions apply (e.g. supported file formats). iOS 및 macOS 적용이 제한 됩니다.(예: 지원되는 파일 형식).
macOS differences (macOS 차이점)
Due to limitations currently within the macOS Flutter engine, getNotificationAppLaunchDetails will return null on macOS versions older than 10.14. These limitations will mean that conflicts may occur when using this plugin with other notification plugins (e.g. for push notifications).
The schedule, showDailyAtTime and showWeeklyAtDayAndTime methods that were implemented before macOS support was added and have been marked as deprecated aren't implemented on macOS.
현재 macOS Flutter 엔진의 제한으로 인해 getNotificationAppLaunchDetails는 10.14 이전 버전의 macOS에서 null을 반환합니다. 이러한 제한으로 인해 이 플러그인을 다른 알림 플러그인과 함께 사용할 때(예: 푸시 알림) 충돌이 발생할 수 있습니다.
스케줄, 매일 표시macOS 지원이 추가되기 전에 구현되었으며 사용되지 않는 것으로 표시된 time 및 show WeeklyAtDayAndTime 메서드는 macOS에 구현되지 않습니다.
Linux limitations (리눅스 제한 사항)
Capabilities depend on the system notification server implementation, therefore, not all features listed in LinuxNotificationDetails may be supported. One of the ways to check some capabilities is to call the LinuxFlutterLocalNotificationsPlugin.getCapabilities() method.
Scheduled/pending notifications is currently not supported due to the lack of a scheduler API.
To respond to notification after the application is terminated, your application should be registered as DBus activatable (see DBusApplicationLaunching for more information), and register action before activating the application. This is difficult to do in a plugin because plugins instantiate during application activation, so getNotificationAppLaunchDetails can't be implemented without changing the main user application.
기능은 시스템 Notification 서버 구현에 따라 다르므로 리눅스 Notification Details에 나열된 모든 기능이 지원되는 것은 아닙니다. 일부 기능을 확인하는 방법 중 하나는 LinuxFlutterLocalNotificationsPlugin.getCapabilities() 메서드를 호출하는 것입니다.
스케줄러 API가 부족하여 현재 예약/보류 알림이 지원되지 않습니다.
응용프로그램이 종료된 후 통지에 응답하려면 응용프로그램을 DBus 활성화 가능으로 등록하고(자세한 내용은 DBus Application Launching 참조) 응용프로그램을 활성화하기 전에 수행을 등록해야 합니다. 응용 프로그램 활성화 중에 플러그인이 인스턴스화되므로 기본 사용자 응용 프로그램을 변경하지 않고는 getNotificationAppLaunchDetails를 구현할 수 없습니다.
Android Setup (안드로이드 셋업)
Before proceeding, please make sure you are using the latest version of the plugin. The reason for this is that since version 3.0.1+4, the amount of setup needed has been reduced. Previously, applications needed changes done to the AndroidManifest.xml file and there was a bit more setup needed for release builds. If for some reason, your application still needs to use an older version of the plugin then make use of the release tags to refer back to older versions of readme.
진행 전에 최신 버전의 플러그인을 사용하고 있는지 확인하십시오. 그 이유는 버전 3.0.1+4 이후 필요한 설정 양이 줄어들었기 때문이다. 이전에 응용 프로그램은 AndroidManifest.xml 파일을 변경해야 했고 릴리스 빌드를 위해 조금 더 많은 설정이 필요했습니다. 어떤 이유로 인해 응용 프로그램에서 여전히 이전 버전의 플러그인을 사용해야 하는 경우 릴리스 태그를 사용하여 이전 버전의 Readme를 다시 참조합니다.
Custom notification icons and sounds (사용자 지정 알림 아이콘 및 소리)
Notification icons should be added as a drawable resource. The example project/code shows how to set default icon for all notifications and how to specify one for each notification. It is possible to use launcher icon/mipmap and this by default is @mipmap/ic_launcher in the Android manifest and can be passed AndroidInitializationSettings constructor. However, the official Android guidance is that you should use drawable resources. Custom notification sounds should be added as a raw resource and the sample illustrates how to play a notification with a custom sound. Refer to the following links around Android resources and notification icons.
Notification 아이콘은 drawable resource로서 추가되어야 합니다. 예시 프로젝트/코드는 어떻게 default 아이콘을 정하는지 (모든 notification 에 대해) 그리고 어떻게 여러 notification에 대해 하나를 특정지을지 보여준다. icon/mipmap을 사용하는 것은 가능하고 이것은 기본적으로 안드로이드 manifest에 있는 @mipmap/ic_launcher를 사용하는 것이고 그리고 AndroidInitializationSettings 생성자로도 통과시킬 수 있다. 그러나, 안드로이드 공식 가이드는 너는 drawable resources를 써야만 한다는 것이다. custom notification sound들은 raw resource로서 추가되어야하며 샘플은 어떻게 custom sound를 가지고 notification을 재생하는지 보여준다. 안드로이드 리소스와 notification icons에 관한 following links를 참조하라.
When specifying the large icon bitmap or big picture bitmap (associated with the big picture style), bitmaps can be either a drawable resource or file on the device. This is specified via a single property (e.g. the largeIcon property associated with the AndroidNotificationDetails class) where a value that is an instance of the DrawableResourceAndroidBitmap means the bitmap should be loaded from an drawable resource. If this is an instance of the FilePathAndroidBitmap, this indicates it should be loaded from a file referred to by a given file path.
큰 아이콘 비트맵 또는 큰 그림 비트맵(큰 그림 스타일과 연결)을 지정할 때, 비트맵은 drawable resource나 device의 파일이 될 수 있습니다. 이것은 특정한 single 프로퍼티(예: Android NotificationDetails 클래스와 연결된 largeIcon 속성) 를 통해 specified된다. DrawableResourceAndroidBitmap의 인스턴스인 값이 DrawableResourceBitmap에서 비트맵을 로드해야 함을 의미하는 단일 속성을 통해 지정됩니다. 만약 FilePathAndroidBitmap의 인스턴스인 경우, 지정된 파일 경로에서 참조하는 파일에서 로드해야 함을 나타냅니다.
⚠️ For Android 8.0+, sounds and vibrations are associated with notification channels and can only be configured when they are first created. Showing/scheduling a notification will create a channel with the specified id if it doesn't exist already. If another notification specifies the same channel id but tries to specify another sound or vibration pattern then nothing occurs.
Android 8.0+의 경우 sound들과 진동들이 알림 채널들과 연결되며 처음 created 될 때만 구성할 수 있습니다. 알림 표시/일정 지정하면 지정한 ID가 없는 채널이 생성됩니다. 다른 알림이 동일한 채널 ID를 지정하지만 다른 소리 또는 진동 패턴을 지정하려고 하면 아무 일도 일어나지 않습니다.
'개발 > Flutter' 카테고리의 다른 글
permission handler IOS (0) | 2022.07.22 |
---|---|
FCM icon 바꾸기 (0) | 2022.07.20 |
평범한 텍스트 버튼 (0) | 2022.07.08 |
index scroll library (0) | 2022.07.05 |
Getx refresh() (0) | 2022.07.01 |