Vru*_*tel 5 background-service firebase flutter google-cloud-firestore
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await GetStorage.init();
await Firebase.initializeApp();
await PushNotificationsService().init();
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
runApp(MyApp());
setuplocator();
}
Run Code Online (Sandbox Code Playgroud)
上面的代码是在主线程上设置的。现在的问题是应用程序在后台时没有收到通知。在前台它工作正常。但它在后台不起作用。
但这一切都是在调试模式下发生的,而不是在发布模式下发生的。该怎么办 ?
Vru*_*tel 23
@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
// handle message
}
Run Code Online (Sandbox Code Playgroud)
只需在上面的 _firebaseMessagingBackgroundHandler 方法上添加 @pragma('vm:entry-point')
我必须再次指出,此问题仅发生在发布版本上并且仅发生在 Android 平台上(我已在 Android 13 的模拟器以及运行 Android 12 的三星设备中对此进行了测试)。在调试和配置文件模式下,应用程序收到 2 个通知,一个来自本机 Firebase Messaging,一个来自 Flutter 后台处理程序的 firebase_local_notifications,并且它也应该在发布模式下执行此操作(这在 3.0.5 中可以正常工作),但是,在 3.3.0 中,它显示的只是本机通知,没有任何 flutter_local_notifications 生成的痕迹。
| 归档时间: |
|
| 查看次数: |
2790 次 |
| 最近记录: |