Overview
Starting with v10.3.0, the Flutter SDK supports file-based initialization.
Alternatively, the SDK can be initialized manually. If you require this approach, please refer to the guide on Framework Initialization.
- Navigate to the Initialization Website.
- Configure the values based on your application requirements. Refer to the Configuration Parameters tables below:
- Click Generate Code at the bottom of the form.
Step 1: Android Configuration (XML)
For Android, initialization is handled by placing an XML configuration file in the application’s resource directory.Android Configuration Reference
Below is the comprehensive list of keys available formoengage.xml.
Android Configuration
Android Configuration
Add Configuration File
Place the generated file inandroid/app/src/main/res/values/.
Step 2: iOS Configuration (Info.plist)
For iOS, initialization is handled by adding a configuration dictionary to yourInfo.plist.
iOS Configuration Reference
Below is the comprehensive list of keys available for theMoEngage dictionary.
iOS Configurations
iOS Configurations
Data Center Values
Configure the integer corresponding to your region. Incorrect values will result in data loss.Update Info.plist
- Open your project’s
Info.plist( found inios/Runner/). - Create a new Top-Level Key named
MoEngageof typeDictionary. - Add the configuration file content generated in the Initialization Website.
Step 3: Framework Level Initialization
After you configure the native files, the initialization code in your hybrid framework is simplified. Create MoEngageFlutter(YOUR_Workspace_ID) object and in the project’s App Widget call initialise() of MoEngageFlutter plugin in the initState() the method as shown below:Step 4: Migration and Precedence
To migrate from manual code-based initialization to file-based approach, refer here.Step 5: Environments (Test vs. Live)
You can configure Test/Live environments within these files.- Android: Use the key
<string name="com_moengage_core_environment">test</string>. - iOS: Use
<key>IsTestEnvironment</key> <true/>