我是新来的。我正在从Firebase发送通知。它在后台运行,但在前台不运行。我也尝试了本地通知依赖项,但是它不起作用。
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
String textValue = 'Hello World !';
FirebaseMessaging firebaseMessaging = new FirebaseMessaging();
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
new FlutterLocalNotificationsPlugin();
@override
void initState() {
super.initState();
firebaseMessaging.getToken().then((token) {
print('token');
print('token $token');
});
var android = new AndroidInitializationSettings('mipmap/ic_launcher');
var ios = new IOSInitializationSettings();
var platform = new InitializationSettings(android, ios);
flutterLocalNotificationsPlugin.initialize(platform);
firebaseMessaging.configure(
onLaunch: (Map<String, dynamic> msg) {
print(" onLaunch called ${(msg)}");
},
onResume: (Map<String, dynamic> msg) {
print(" onResume called ${(msg)}");
},
onMessage: (Map<String, dynamic> msg) {
showNotification(msg);
print(" onMessage called ${(msg)}");
},
);
firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, alert: true, badge: true));
firebaseMessaging.onIosSettingsRegistered
.listen((IosNotificationSettings setting) {
print('IOS Setting Registed');
});
}
void _incrementCounter() {
setState(() {
_counter++;
});
}
showNotification(Map<String, dynamic> msg) async {
var android = new AndroidNotificationDetails(
'sdffds dsffds',
"CHANNLE NAME",
"channelDescription",
);
var iOS = new IOSNotificationDetails();
var platform = new NotificationDetails(android, iOS);
await flutterLocalNotificationsPlugin.show(
0, "This is title", "this is demo", platform);
}
Android清单文件
<activity>
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="default_notification_channel_id" />
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
它正在后台通知中工作。但它不能在前台工作。