FlutterFlowでローカル通知を実装しました。
なかなか実装方法が出て来なかったので共有したいと思います。
注:iOSでのみ検証しました。
検証はWebではできず、コードをDLしてシュミレーターか実機でテストできます。
画面に2つボタンを配置してパーミッションボタンを押下すると許諾のダイヤログを表示して、通知ボタンを押下するとローカル通知がでます。
参考
利用するパッケージ
flutter_local_notifications
CustomActionsでrequestPermissionsを作る
アクションを作ったら、「Add Dependency」からflutter_local_notificationsを追加します。
(バージョンは最新に合わせる)
Action名はrequestPermissionsとしています。
これは通知の許諾を取るためのクラスです。
flutter_local_notificationsをインポートして中身を書きます。
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
Future<void> requestPermissions() async {
FlutterLocalNotificationsPlugin()
..resolvePlatformSpecificImplementation<
AndroidFlutterLocalNotificationsPlugin>()
?.requestNotificationsPermission()
..initialize(const InitializationSettings(
android: AndroidInitializationSettings('@mipmap/ic_launcher'),
iOS: DarwinInitializationSettings(),
));
}
CustomActionsでsetNotificationを作る
こちらは通知をセットするクラスです。
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
Future setNotification() async {
const iosNotificationDetail = DarwinNotificationDetails();
const notificationDetails = NotificationDetails(iOS: iosNotificationDetail);
FlutterLocalNotificationsPlugin()
.show(0, 'title', 'message', notificationDetails);
}
画面にボタンを配置してアクションをセットする
パーミッションボタンにAddActionでrequestPermissionsをセットする。
コードをダウンロードする
有料ユーザーのみ可能ですが、コードをダウンロードします。
私はAndroidStudioで引き続き作業しました。
ダウンロードしたコードを開く。
iOSのセットアップ
ios/Runner/AppDelegate.swift に下記を追加します。
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}
画面
通知が出ることを確認できました!!