callbackDispatcher function
void
callbackDispatcher({
- dynamic inited = true,
callbackDispatcher use to install background channel
Implementation
void callbackDispatcher({inited: true}) {
WidgetsFlutterBinding.ensureInitialized();
NotificationsListener._bgMethodChannel
.setMethodCallHandler((MethodCall call) async {
try {
switch (call.method) {
case "sink_event":
{
final List<dynamic> args = call.arguments;
final evt = NotificationEvent.fromMap(args[1]);
final Function? callback = PluginUtilities.getCallbackFromHandle(
CallbackHandle.fromRawHandle(args[0]));
if (callback == null) {
print("callback is not register: ${args[0]}");
return;
}
callback(evt);
}
break;
default:
{
print("unknown bg_method: ${call.method}");
}
}
} catch (e) {
print(e);
}
});
// if start the ui first, this will cause method not found error
if (inited)
NotificationsListener._bgMethodChannel.invokeMethod('service.initialized');
}