繁体   English   中英

Flutter - OneSignal - setNotificationOpenedHandler - OpenPage

[英]Flutter - OneSignal - setNotificationOpenedHandler - OpenPage

我有一个 flutter 应用程序。 我正在使用 OneSignal 推送通知。 单击通知时,我想打开一个页面。 但是,第一次点击的时候,因为找不到上下文,所以没有页面跳转。 点击通知时如何打开相关页面?

OneSignal.shared.setNotificationOpenedHandler((OSNotificationOpenedResult result) {
        try {
         Navigator.push(
            context,
            MaterialPageRoute(
              settings: RouteSettings(name: '/a'),
              builder: (context) => Settings(),
            ),
          );
        }
        catch(e) {
          print('e : ' + e.toString());
        }
        
      });

谢谢你。

您可以为 MaterialApp 使用 GlobalKey,并在没有上下文的情况下使用路由器。 如果在我的 http 控制器上发现未经授权的状态代码,我会使用它将用户重定向到登录页面。

首先,我使用以下密钥创建了一个 class:

class NavigatorKey {static final key = new GlobalKey<NavigatorState>();}

然后在我的 MaterialApp 中:

...
return MaterialApp(
    navigatorKey: key
...

然后我导入 class 并使用如下密钥:

NavigatorKey.key.currentState.pushNamedAndRemoveUntil('/login', (r) => false);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM