【发布时间】:2021-03-28 20:15:45
【问题描述】:
下面是我的推送通知管理器。我想在收到通知时导航到特定屏幕(当应用程序同时来自后台/前台时)。请让我知道我做错了什么?
提前致谢
class PushNotificationsManager {
PushNotificationsManager._();
factory PushNotificationsManager() => _instance;
static final PushNotificationsManager _instance =
PushNotificationsManager._();
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
bool _initialized = false;
Future<void> init() async {
if (!_initialized) {
// For iOS request permission first.
_firebaseMessaging.requestNotificationPermissions();
_firebaseMessaging.configure();
// For testing purposes print the Firebase Messaging token
String token = await _firebaseMessaging.getToken();
print("FirebaseMessaging token****: $token");
_initialized = true;
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
print("FirebaseMessaging token: $token");
print('hi');
try {
Navigator.pushAndRemoveUntil(
navigatorKey.currentContext,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (context) => CategoryListViewModel(),
child: CategoryListPage(),
),
),
(Route<dynamic> route) => false);
} catch (e) {
print("Exeeee:::" + e.toString());
}
print("found");
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
},
);
}
} }
【问题讨论】:
-
您需要在 onlaunch 中写入点击次数。
-
@hasan 当我进一步检查时,我看到上下文为空。如何获取全局上下文。我在主 dart 文件中添加了全局键并使用仍然为空。
标签: flutter flutter-dependencies flutter-web