Локальное уведомление Flutter работает на симуляторе, но не на физическом устройстве - PullRequest
0 голосов
/ 04 августа 2020

возникла проблема при отображении уведомления на ios физическом устройстве, не знаю, где я допустил ошибку, уведомление ios работает на симуляторе, но когда я тестирую его на физическом 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 уведомление работает на симуляторе, но не на физическом устройстве


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),
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...