在我的flutter应用程序中,我必须显示没有Firebase的推送通知。在点击特定的API之后,我的服务器将向我发送一条消息,并且该消息我希望显示为推送通知。
你能告诉我一种方法吗?
答案 0 :(得分:4)
您可以使用本地通知插件
https://pub.dev/packages/flutter_local_notifications
API响应后,只需在本地通知中显示该数据
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin(); // initialise the plugin. app_icon needs to be a added as a drawable resource to the Android head project
var initializationSettingsAndroid =
new AndroidInitializationSettings('app_icon');
var initializationSettingsIOS = IOSInitializationSettings(
onDidReceiveLocalNotification: onDidReceiveLocalNotification);
var initializationSettings = InitializationSettings(
initializationSettingsAndroid, initializationSettingsIOS);
flutterLocalNotificationsPlugin.initialize(initializationSettings,
onSelectNotification: onSelectNotification);
答案 1 :(得分:3)
您可以使用OneSignal.com。它是您可以找到的最好的免费和可靠的服务之一。
您仍然必须为其设置一个Firebase项目,但是其余所有操作都可以通过OneSignal Portal进行管理。它们还提供了一个API,用于将通知发送到Android和iOS设备。
他们已经有了plugin for Flutter and a documentation的如何将系统集成到应用中的方法。
答案 2 :(得分:1)
尚不兼容最新的 Flutter 版本(空安全)
答案 3 :(得分:0)
有两种主要方式可以向没有 Firebase 的 Flutter 应用程序发送推送通知。
示例代码:
@override
void initState() {
super.initState();
var initializationSettingsAndroid = AndroidInitializationSettings('ypur-icon-name(icon)');
var initializationSettingsIOS = IOSInitializationSettings();
var initializationSettings = InitializationSettings(
android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
flutterLocalNotificationsPlugin.initialize(initializationSettings,
onSelectNotification: _onNotificationClicked);
}
Future _showNotification() async {
var androidPlatformChannelSpecifics = AndroidNotificationDetails(
'Channel id', 'Your notification ID', 'Notification name',
importance: Importance.defaultImportance,
priority: Priority.defaultPriority);
var iOSPlatformChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(
android: androidPlatformChannelSpecifics,
iOS: iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.show(
0,
'Notification Alert ?',
'Message - There is a new notification on your account, kindly check it out',
platformChannelSpecifics,
payload:
'Message - There is a new notification on your account, kindly check it out',
);
}
}
然后您创建一个函数或仅在单击通知时显示一个对话框 例如
Future _onNotificationClicked() async {
return showDialog();
);
对于flutter本地通知,您可以查看包文档以获取更多信息,另一种可以使用的方法是将此本地通知连接到您的数据库/服务器或API,以便它可以随时调用您的API用户会收到通知。等
该软件包在 pub.dev 上可用 - onesignal