void main() async {
WidgetsFlutterBinding.ensureInitialized();
await GetStorage.init();
await Firebase.initializeApp();
await PushNotificationsService().init();
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
runApp(MyApp());
setuplocator();
}
上面的代码是在主线程上设置的。现在的问题是应用程序在后台时没有收到通知。在前台它工作正常。但它在后台不起作用。
但这一切都是在调试模式下发生的,而不是在发布模式下发生的。该怎么办 ?
@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
// handle message
}
只需在上面的 _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 生成的痕迹。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)