[英]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.