Netmera Developer Guide
Ask or search…
Comment on page

Flutter SDK Versions


Flutter SDK 2.3.2 has been released. Here are the version notes:
  • Android 3.10.4 and iOS 3.18.0 versions have been added.
  • The fetchCoupon feature has been integrated into Flutter SDK.


  • The Android baseUrl crash issue has been resolved.


  • Android core and FCM 3.10.2 versions have been integrated into the Flutter SDK.
  • The Target API level of the Android module has been raised to 33.
  • The 'startDataTransfer' and 'stopDataTransfer' methods have been added to the plugin.



Flutter version 2.3.0, which includes Android 3.10.1 and iOS 3.16.0 versions, has been released.



  • Push action callbacks were moved in foreground thread.
Callback Details
It appears that you have callback methods in your application, where the developer can provide their own custom methods to be executed. These callback methods allow you to receive specific information or perform certain actions requested from Netmera. For example, you can receive push payloads through these callbacks.
In Flutter, there is a problem where callbacks cannot run in the background as the application kills the cross-compiled code to preserve resources. To avoid this issue, you can utilize the "isolate" feature to run the existing callback methods in a separate thread. However, it's important to note that since these callbacks are running in a background thread, they cannot perform long-running tasks or have persistent operations. Once the task in the thread is completed, the thread terminates. This behavior is due to the nature of different threads operating independently. The methods have been moved to the foreground.
  • onPushReceiveBackground callback was created for background messages.
Only the onPushReceiverBackground handling process is performed in the background.


  • Flutter iOS event channel issue was fixed.
  • Push action callbacks context issue was fixed.



  • The section below from the AppDelegate should be removed.
func registerPlugins(registry: FlutterPluginRegistry) {
GeneratedPluginRegistrant.register(with: registry)
  • The following line should be removed from the AppDelegate → didFinishLaunchingWithOptions method.
  • The inside of the AppDelegate → didReceiveRemoteNotification method should be changed as follows.
~~FNetmeraService.handleWork(ON_PUSH_RECEIVE, dict:["userInfo" : userInfo])~~
if UIApplication.shared.applicationState == .active {
FNetmeraService.handleWork(ON_PUSH_RECEIVE, dict:["userInfo" : userInfo])
} else {
FNetmeraService.handleWork(ON_PUSH_RECEIVE_BACKGROUND, dict:["userInfo" : userInfo])


  • There is no change in Android integration.


  • The NetmeraPushBroadcastReceiver().initialize() method in the main.dart file can now be called anywhere.
  • In order for background messages to be processed, the following method must be added first, outside the main ve MyApp blocks.
void _onPushReceiveBackgroundHandler(Map<dynamic, dynamic> bundle) async {
print("onPushReceiveBackground: $bundle");
  • Then this function should be given to onPushReceiveBackground in main before the runApp method as follows.
For more detailed information, you can see the example usage in the example project.


  • Netmera Android SDK version was upgraded to 3.9.14.
  • Decryption failed issue was fixed. (VF crash fixed.)



  • Android core SDK version 3.9.12 and FCM version 3.9.4 have been added to the Flutter SDK.
  • Android 13 notification permission methods have been added to the Flutter SDK and integrated with the existing iOS methods. The areNotificationsEnabled and requestPushNotificationAuthorization methods can now be used for both iOS and Android devices.
Push Notification Permissions
If you don't request notification permission at runtime, you can request it by calling the requestPushNotificationAuthorization() method. Note: Notification runtime permissions are required on Android 13 (API 33) or higher. Therefore, before calling the method, make sure your project targets an API of 33 and above.
You can call the areNotificationsEnabled() method if you need to know the status of permissions.
Netmera.areNotificationsEnabled().then((enabled) {
// Use the enabled status of permission as boolean
Usage details of areNotificationsEnabled and requestPushNotificationAuthorization methods have been added to the Readme file.