簡體   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