在ios物理设备上显示通知时出现问题,不确定我在哪里弄错了ios通知在Simulator上是否有效,但是当我在物理iPhone上对其进行测试时,则不起作用。
setUpLocalNotification() async {
//Local Notification Configuration--------
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
FlutterLocalNotificationsPlugin();
var initializationSettingsAndroid = AndroidInitializationSettings('logo');
var initializationSettingsIOS = IOSInitializationSettings(
requestSoundPermission: true,
requestBadgePermission: true,
requestAlertPermission: true,
onDidReceiveLocalNotification: onDidReceiveLocalNotification,
);
var initializationSettings = InitializationSettings(
initializationSettingsAndroid, initializationSettingsIOS);
await flutterLocalNotificationsPlugin.initialize(initializationSettings,
onSelectNotification: onSelectNotification);
//end local notification
}
这是什么
Future onDidReceiveLocalNotification(
int id, String title, String body, String payload) async {
// display a dialog with the notification details, tap ok to go to another page
showDialog(
context: context,
builder: (BuildContext context) => CupertinoAlertDialog(
title: Text(title),
content: Text(body),
actions: [
CupertinoDialogAction(
isDefaultAction: true,
child: Text('Ok'),
onPressed: () async {
Navigator.of(context, rootNavigator: true).pop();
},
)
],
),
);
}
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print('---------------, message recied');
_showNotificationWithDefaultSound(message);
},
onLaunch: (Map<String, dynamic> message) async {
print('test on laucnh---');
navigateUser(message);
},
onResume: (Map<String, dynamic> message) async {
print('------=-=-=-=');
navigateUser(message);
// TODO optional
},
);
消息中的在模拟器和android物理设备上确实有效,但是在iOS上,通知在Simulator上有效,但在物理设备上无效
Future _showNotificationWithDefaultSound(Map<String, dynamic> message) async {
var iOSPlatformChannelSpecifics = new IOSNotificationDetails();
var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
'your chnnel id', 'your channel name', 'your channel description',
importance: Importance.Max, priority: Priority.High);
var platformChannelSpecifics = new NotificationDetails(
androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.show(
98,
message['notification']['title'],
message['notification']['body'],
platformChannelSpecifics,
payload: JsonEncoder.withIndent(" ").convert(message),
);
}