AhW*_*gih 6 dart flutter flutter-provider
我已经成功设置了后台通知并使用邮递员对其进行了测试,一切都很好。
现在我需要在我的backgroundHandler 中访问Provider.of(context),它必须是没有上下文的静态方法。
我需要做的就是根据后台通知中的数据执行操作。
这是我初始化 FCM 的代码(我在启动屏幕中执行此操作)
Future<void> initFcm() async {
_firebaseMessaging.configure(
onBackgroundMessage: myBackgroundMessageHandler,
onMessage: (msg) async {
print('this is ONMESSAGE $msg');
},
onLaunch: (msg) async {
print('ON LAUNCH');
},
onResume: (msg) async {
print('ON RESUME');
},
);
// For testing purposes print the Firebase Messaging token
deviceToken = await _firebaseMessaging.getToken();
print("FirebaseMessaging token: $deviceToken");
}
static Future<dynamic> myBackgroundMessageHandler(
Map<String, dynamic> message) async {
print(message);
if (message.containsKey('data')) {
// Handle data message
final dynamic data = message['data'];
final orderId = data['order_id'];
//THE PROBLEM IS THAT HERE I DON'T HAVE CONTEXT (coz static method)
Provider.of<Orders>(context, listen: false).setBackgroundStatus(orderId);
}
if (message.containsKey('notification')) {
// Handle notification message
final dynamic notification = message['notification'];
}
// Or do other work.
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在 backhandHandler 中处理提供程序中的任务,它是一个没有上下文的静态方法?
| 归档时间: |
|
| 查看次数: |
659 次 |
| 最近记录: |