- Added support for JSONObject values in user attributes
- Android
- Added Support for Enforcing SDK into Specific Environment
- iOS
- Added SDK Initialization API independent of build configuration
- Android
- BugFix:
- ANR in
MoEInitializer
while accessing Plugin version from assets in Main Thread
- Non-intrusive Nudges support
- Send SelfHandled InApp Callback when data is null
- Android
- Support for
moe-android-sdk
version 13.00.00
and above
- iOS
- Updated MoEngage-iOS-SDK to
9.16.0
- Moengage undefine error handling if webSDK not integrated
- Added support for array in user attributes
- Android
- Google Policy - Delete User details API
- Native SDK Updated to support version
12.10.01
and above
- Federated Plugin Implementation
- Breaking Change: Use import 'package:moengage_flutter/moengage_flutter.dart'; to import any files in the
moengage_flutter
package. Remove the existing import related to moengage_flutter
- Android
- Native SDK Updated to support version
12.9.00
and above
- Android
- BugFix:
- Self Handled InApp delivery controls not working.
- Android
- Plugin Base Version Updated to
3.3.2
- iOS
- MoEngage-iOS-SDK version updated to
~>9.10.0
- Android
- Compile SDK Version Updated to 33
- Native SDK updated to support version
12.9.00
and above.
- Support for Foreground Push Click Callback
- iOS
- MoEngage-iOS-SDK version updated to
~>9.8.0
- Android
- SelfHandled InApp Callback for Test InApps and Event Triggered InApps
- Security improvement: controlled logging for release, debug and profile mode
- Android
- Support for 2 Step Push Optin InApps
- Device Id enable / disable support
- iOS
- MoEngage-iOS-SDK version updated to
~>9.4.0
.
- Bugfix
- Typo fix in API name
enableAdIdTracking()
- Android
- Support for Android 13 notification permission.
- Android Gradle Plugin version updated to
7.3.1
- Gradle version updated to
7.4
- Build Configuration Updates
- Compile SDK Version - 31
- Target SDK version - 31
- Support for Android SDK version
12.4.00
- InApp
6.4.0
- iOS
Then |
Now |
initializeDefaultInstance(_ config: MOSDKConfig, sdkState: Bool = true, launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) |
initializeDefaultInstance(config: MOSDKConfig, sdkState: MoEngageSDKState = .enabled, launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) |
- Support for Android SDK version
12.2.05
and above.
- Support for iOS SDK version
8.3.1
and above.
- Breaking Changes
Then |
Now |
MoEngageFlutter() |
MoEngageFlutter("YOUR_APP_ID") |
optOutDataTracking(false) |
enableDataTracking() |
optOutDataTracking(true) |
disableDataTracking() |
- InApp Model
InAppCampaign
broken down from a single object to multiple objects
InAppData
ClickData
SelfHandledCampaignData
- InApp
setUpInAppCallbacks
removed and callbacks broken down into multiple listeners.
Callback Type |
Method |
InApp Shown |
setInAppShownCallbackHandler(InAppShownCallbackHandler) |
InApp Dismissed |
setInAppDismissedCallbackHandler(InAppDismissedCallbackHandler) |
InApp Clicked(Navigation, Custom Action) |
setInAppClickHandler(InAppClickCallbackHandler) |
InApp Self Handled |
setSelfHandledInAppHandler(SelfHandledInAppCallbackHandler) |
- Push campaign Model is restructured and renamed from
PushCampaign
to PushCampaignData
- Push callback APIs are renamed.
Then |
Now |
setUpPushCallbacks(PushCallbackHandler) |
setPushClickCallbackHandler(PushClickCallbackHandler) |
setUpPushTokenCallback(PushTokenCallbackHandler) |
setPushTokenCallbackHandler(PushTokenCallbackHandler) |
Removed APIs |
selfHandledPrimaryClicked() |
enableSDKLogs() |
optOutInAppNotification() |
optOutPushNotification() |
startGeofenceMonitoring() |
- Android
- Build Configuration Updates
- Minimum SDK version - 21
- Target SDK version - 30
- Compile SDK Version - 30
- Mi SDK update to Version 5.x.x, refer to the Configuring Xiaomi Push and update the integration.
- Removed and replaced APIs
Then |
Now |
MoEInitializer.initialize(Context, MoEngage.Builder) |
MoEInitializer.initialiseDefaultInstance(Context, MoEngage.Builder) |
MoEInitializer.initialize(Context, MoEngage.Builder, Boolean) |
MoEInitializer.initialiseDefaultInstance(Context, MoEngage.Builder) |
- iOS
MOFlutterInitializer
has been renamed to MoEngageInitializer
Then |
Now |
initializeWithSDKConfig(_ config: MOSDKConfig, andLaunchOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) |
initializeDefaultInstance(_ config: MOSDKConfig, launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) |
initializeWithSDKConfig(_ config: MOSDKConfig, withSDKState state:Bool, andLaunchOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) |
initializeDefaultInstance(_ config: MOSDKConfig, sdkState: Bool = true, launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) |
- Added Flutter 3 support
- Device identifier tracking update as per Google's User Data policy. Advertising Id is only tracked after user consent.
- Android
- Native SDK updated to support version
11.6.02
and above.
- Support for HTML InApps
- Android
- Native SDK updated to support version
11.4.00
and above.
- iOS
- Native Dependencies updated to support MoEngage-iOS-SDK
7.1.0
and above
- Bugfix
- Calling MoEngage APIs when application in background is not working on Android.
- Bugfix:
- Push click notification callback is not received when clicked action is null.
- Migrated the main library to null safety.
- Require Dart 2.12 or greater.
- Bumped flutter dependency constraint to min version
1.17.0
- Android
- Native SDK updated to support version
11.2.00
and above.
- iOS
- Added ObjC support for
MOFlutterInitializer
class
- PodSpec changes to set deployment target to iOS 10.0.
- Android
- Native SDK updated to support version
11.0.04
and above.
- Plugin Base
2.0.00
- iOS
- Plugin now supports iOS 10.0 and above.
- Native Dependencies updated to support MoEngage-iOS-SDK
7.*
and above
- Base plugin version dependency updated to
~> 2.0.2
.
- Added Dart APIs to enable and disable MoEngage Sdk.
- Added Dart API to register a callback for push token generated event.
- Android artifacts use maven central instead of Jcenter.
- Native SDK version
10.6.01
- Plugin Base
1.2.01
- Android Base plugin update for enabling callback extension.
- Android Native SDK updated to
10.5.00
- Bugfix: AppStatus method was getting called for other channel method calls as well.
- Support for Self-Handled In-App
- Support for In-App V3
- Android SDK updated to support
10.4.03
and above.
- iOS SDK dependency changed to support versions greater than
6.0.0
.
- Deprecated APIs
Then |
Now |
MoEProperties().addInteger(String, int) |
MoEProperties().addAttribute.(String, dynamic) |
MoEProperties().addString(String, String) |
MoEProperties().addAttribute(String, dynamic) |
MoEProperties().addBoolean(String, bool) |
MoEProperties().addAttribute(String, dynamic) |
MoEProperties().addDouble(String, double) |
MoEProperties().addAttribute(String, dynamic) |
MoEProperties().addLocation(String, MoEGeoLocation) |
MoEProperties().addAttribute(String, dynamic) |
Then |
Now |
onPushClick(Map<String, dynamic>) |
onPushClick(PushCampaign) |
onInAppClick(Map<String, dynamic>) |
onInAppClick(InAppCampaign) |
onInAppShown(Map<String, dynamic>) |
onInAppShown(InAppCampaign) |
onInAppShown(Map<String, dynamic> message) |
onInAppShown(InAppCampaign message) |
passPushToken(String) |
passFCMPushToken(String) |
passPushPayload(Map<String, String>) |
passFCMPushPayload(Map<String, String>) |
Then |
Now |
MoEInitializer.initialize(MoEngage) |
MoEInitializer.initialize(Context, MoEngage.Builder) |
- Add Dart APIs for passing FCM Push Token and FCM Push Payload from Android Platform.
- Sample Updated
- ReadMe Updated
- Improved logging