Flutter本地通知在模拟器上有效,但在物理设备上无效

时间:2020-08-04 19:14:15

标签: firebase flutter dart

在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),
    );
  }

0 个答案:

没有答案