Программирование
Как использовать push-уведомления с Flutter
Начните рассылать push-уведомления своим пользователям простым способом
Я не нашел простой документации для push-уведомлений с Flutter, большая часть из них была более сложной, чем следовало бы. В этом руководстве я хочу объяснить только то, что необходимо.
Примечание; статья посвящена Flutter с Android
1. Начало работы
Я создал новый проект сflutter create push_messages
. В сгенерированномpubspec.yaml
вы можете добавить следующий пакет под dependencies
;
dependencies: flutter_local_notifications: 3.0.0 // latest at time of writing
Затем запустите flutter pub get
, это установит пакет.
2. Установите разрешения
Далее мы переходим к;
android/app/src/main/AndroidManifest.xml
Нам нужно добавить код, он должен отображать уведомление, даже если ваше устройство заблокировано, и включит ваш экран. Также мы установили код на случай, если вы захотите запланировать уведомления в будущем. Добавьте весь следующий полужирный код;
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.push_messages"> <application android:label="push_messages" android:icon="@mipmap/ic_launcher"> <activity <!-- other code --> android:showWhenLocked="true" android:turnScreenOn="true"> <!-- other code --> </activity> <receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/> </intent-filter> </receiver> <!-- other code --> </application> </manifest>dasd
Чтобы установить другие разрешения, нам нужно перейти в AndroidManifest
внутри папки отладки;
android/app/src/debug/AndroidManifest.xml
Здесь мы снова добавляем некоторые базовые разрешения, пожалуйста, добавьте жирные строки;
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.push_messages"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.VIBRATE" /> </manifest>
3. Создание уведомлений
Давайте создадим lib/notifications.dart
. Здесь у нас есть три метода;
- initNotifications () - нам это нужно для инициализации настроек уведомлений для Android, iOS и macOS. Для Android мы хотим использовать значок для нашего уведомления. Который мы называем
app_icon
(поясняется в следующем разделе). - pushNotification () - нам нужно установить некоторые общие детали канала, которые необходимо установить для Android 8.0+. У него есть целый ряд опций (их больше, чем показано). Наконец, мы подошли к той части уведомления, которое вы хотите отобразить:
flutterLocalNotificationsPlugin.show(<your-displayed-notification>)
. Здесь вы указываете идентификатор, заголовок и содержание вашего уведомления, все это говорит само за себя. Но есть еще и полезная нагрузка;
«Указана полезная нагрузка (« элемент x »), которая будет передана обратно через ваше приложение, когда пользователь нажмет на уведомление» - Документация
- selectNotification () - последний метод, он будет срабатывать при выборе уведомления.
4. Установить значок
Добавьте app_icon
в папку ниже, желательно размером 72x72. Он используется как значок для вашего уведомления;
android/app/src/main/res/drawable/app_icon.png
5. Реализация уведомлений.
В нашем lib/main.dart
был сгенерированный код для подсчета каждого нажатия floatingActionButton
. Снимаем все, что связано со счетом. Как только это будет сделано, мы добавим следующие строки чуть ниже класса _MyHomePageState
;
final Notifications _notifications = Notifications(); @override void initState() { super.initState(); this._notifications.initNotifications(); // initialise notification } void _pushNotification() { this._notifications.pushNotification(); // display notification }
Внутри floatingActionButton
у вас есть опция onPressed
, мы добавляем к ней метод _pushNotification
. Это, например, вы можете, конечно, вызвать уведомление при каком-либо другом действии. Теперь файл должен выглядеть так, как показано ниже;
6. Отображение уведомлений
Запустите свой эмулятор или устройство, а затем выполните следующую команду;
flutter run
Приложение должно быть запущено. Чтобы вызвать уведомление, вы должны нажать floatingActionButton
в правом нижнем углу. Если вы все сделали правильно, появится уведомление. Здесь вы видите логотип своего приложения, а также название пакета, заголовок и некоторый контент.
Заключение
Молодец, вы только что самостоятельно отправили push-уведомления. Теперь вы можете реализовать их в своем собственном проекте, выполнив несколько простых шагов. Посмотрите, что возможно с пакетом flutter_local_notifications. Вы также можете запланировать уведомления.