Как открыть конкретный экран с официальным плагином quick_actions во флаттере? - PullRequest
0 голосов
/ 01 апреля 2019

В моем проекте реализован плагин Quick_actions , и я хочу открыть определенный экран, но в функции обработчика быстрых действий навигатор не работает.с Try-Catch исключение показывает, что контекст показывается из навигатора, но я использую контекст navigatorKey моего MaterialApp.

, если я помещаю любую другую функцию, такую ​​как print('some text'), она работает,проблема возникает только тогда, когда я пытаюсь использовать навигатор

Создать быстрые действия и добавить функцию обработчика

createQuickActions() {
    quickActions.initialize(
      (String shortcutId) {
        switch (shortcutId) {
          case 'settings':
            try {
              Navigator.push(
                MyApp.navigatorKey.currentContext,
                MaterialPageRoute(
                  builder: (context) => SettingsScreen(sistemas),
                ),
              );
            } catch (e) {
              print(e);
            }
            print('selected: $shortcutId');
          break;
        }
      }
    );
  }

Инициализировать быстрые действия

 quickActions.setShortcutItems(
      <ShortcutItem>[
        const ShortcutItem(
          type: 'settings',
          localizedTitle: 'settings',
          icon: 'settings',
        ),
     ],
   );

Все этозакодируйте его в моем SplashScreen, потому что документация плагина говорит, что приложение должно быть в раннем состоянии

Я ожидаю, что приложение откроет settings screen и print 'settings', но откроет main screen иprint 'settings' если приложение уже открыто, но если его нет, оно пытается что-то открыть, а затем закрыть себя (не force close сообщение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...