Java 颤振FCM后台呼叫平台特定代码
FCM后台处理程序无法调用在Java 颤振FCM后台呼叫平台特定代码,java,android,flutter,firebase-cloud-messaging,background-process,Java,Android,Flutter,Firebase Cloud Messaging,Background Process,FCM后台处理程序无法调用在MainActivity.java中自定义注册的特定于平台的代码(遵循)。有什么办法可以让这一切顺利进行吗?我对flutter、java和android开发还不熟悉,我的搜索已经进入了死胡同 我是否可以强制打开设置了标志的应用程序,检查该标志,然后调用该方法 是否有一些事件/消息传递系统可以在后台订阅和发送 以下代码产生以下输出: I/flutter ( 6448): BACKGROUND_HANDLER:: I/flutter ( 6448): TRIGGERING
MainActivity.java
中自定义注册的特定于平台的代码(遵循)。有什么办法可以让这一切顺利进行吗?我对flutter、java和android开发还不熟悉,我的搜索已经进入了死胡同
我是否可以强制打开设置了标志的应用程序,检查该标志,然后调用该方法
是否有一些事件/消息传递系统可以在后台订阅和发送
以下代码产生以下输出:
I/flutter ( 6448): BACKGROUND_HANDLER::
I/flutter ( 6448): TRIGGERING ALARM::BEFORE
I/flutter ( 6448): TRIGGERING ALARM::AFTER
E/flutter ( 6448): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method setAlarm on channel com.hybridalert.flutter_hybrid/alarm)
E/flutter ( 6448): #0 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:7)
E/flutter ( 6448): <asynchronous suspension>
E/flutter ( 6448): #1 triggerAlarm (package:flutter_hybrid_alert/src/ui/home.dart:30:37)
E/flutter ( 6448): <asynchronous suspension>
E/flutter ( 6448): #2 backgroundHandle (package:flutter_hybrid_alert/src/ui/home.dart:67:5)
E/flutter ( 6448): #3 _fcmSetupBackgroundChannel.<anonymous closure> (package:firebase_messaging/firebase_messaging.dart:38:30)
E/flutter ( 6448): #4 _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:43:6)
E/flutter ( 6448): #5 _fcmSetupBackgroundChannel.<anonymous closure> (package:firebase_messaging/firebase_messaging.dart:31:42)
E/flutter ( 6448): #6 MethodChannel._handleAsMethodCall (package:flutter/src/services/platform_channel.dart:397:55)
E/flutter ( 6448): #7 _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:43:6)
E/flutter ( 6448): #8 MethodChannel._handleAsMethodCall (package:flutter/src/services/platform_channel.dart:394:39)
E/flutter ( 6448): #9 MethodChannel.setMethodCallHandler.<anonymous closure> (package:flutter/src/services/platform_channel.dart:365:54)
E/flutter ( 6448): #10 _DefaultBinaryMessenger.handlePlatformMessage (package:flutter/src/services/binary_messenger.dart:110:33)
E/flutter ( 6448): #11 _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:43:6)
E/flutter ( 6448): #12 _DefaultBinaryMessenger.handlePlatformMessage (package:flutter/src/services/binary_messenger.dart:101:37)
E/flutter ( 6448): #13 _invoke3.<anonymous closure> (dart:ui/hooks.dart:293:15)
E/flutter ( 6448): #14 _rootRun (dart:async/zone.dart:1124:13)
E/flutter ( 6448): #15 _CustomZone.run (dart:async/zone.dart:1021:19)
E/flutter ( 6448): #16 _CustomZone.runGuarded (dart:async/zone.dart:923:7)
E/flutter ( 6448): #17 _invoke3 (dart:ui/hooks.dart:292:10)
E/flutter ( 6448): #18 _dispatchPlatformMessage (dart:ui/hooks.dart:154:5)
E/flutter ( 6448):
如果您已完成中的所有步骤。然后将backgroundhandler函数放在main()之外。或者,您可以创建一个具有静态属性的类,如:
class BackgroundHandler {
static Future<dynamic> backgroundHandler(Map<String, dynamic> message) {
if (message.containsKey('data')) {
final dynamic data = message['data'];
}
if (message.containsKey('notification')) {
final dynamic notification = message['notification'];
}
}
}
类背景处理程序{
静态Future backgroundHandler(映射消息){
if(message.containsKey('data')){
最终动态数据=消息['data'];
}
if(message.containsKey('notification')){
最终动态通知=消息['notification'];
}
}
}
检查。同时检查使用哪种服务注册插件。@AbhayKoradiya添加“单击”操作的第一个建议是:“向数据有效负载添加“颤振通知”
不会触发onMessage
或onResume
,就像多个资源所说的那样。。。我不知道我是否做错了,也不知道我做错了什么。你能解释一下你建议的第二个链接(地理围栏)中发生了什么吗?检查。小心它显示在第4点。@AbhayKoradiya我不确定你的意思。在重新检查文档时,它似乎确认了这不是一个符合我所寻找的解决方案。除非我遗漏了什么,在这种情况下,请告诉我,而不是含糊其辞。我需要的应用程序打开或移动到前台没有任何用户交互。