Use the Mopinion Flutter Plugin to integrate our native iOS and Android SDKs in your Flutter applications.
pubspec.yml
in your flutter
directory to define the Mopinion Plugin Dependency:dependencies:
...
mopinion_flutter_integration_plugin: ^${latestVersion}
flutter pub get
Open the Android project with Android Studio.
Make sure that your MainActivity.kt
extends FlutterFragmentActivity
.
import io.flutter.embedding.android.FlutterFragmentActivity
class MainActivity: FlutterFragmentActivity() {
// Your code...
}
Make sure the min sdk is 21 in your app
build.gradle
:
defaultConfig {
minSdkVersion 21
}
Project
build.gradle
include the Jitpack repository:
maven {
url 'https://www.jitpack.io'
}
Install the Mopinion SDK for iOS to make it an available resource for the Flutter plugin.
ios
folder and run pod install
command.In order to use Mopinion SDK for Flutter and start collecting your valuable user's feedback please follow the following steps:
Import the plugin class
import 'package:mopinion_flutter_integration_plugin/mopinion_flutter_integration_plugin.dart';
Initialise the SDK by calling:
MopinionFlutterIntegrationPlugin.initSdk("YOUR_DEPLOYMENT_ID", enableLogging: true);
The parameter log
which is the boolean
after the key, allows to activate the logging in the SDK.
It's recommended to initialise the SDK the earliest possible, an example of where to initialise the SDK:
@override
void initState() {
super.initState();
initialize();
}
Future<void> initialize() async {
try {
await MopinionFlutterIntegrationPlugin.initSdk("YOUR_DEPLOYMENT_ID", true);
} catch (error) {
print(error.toString());
}
}
In order to show your forms, call the function :
MopinionFlutterIntegrationPlugin.event("EVENT_NAME");
The MopinionFlutterIntegrationPlugin.event("EVENT_NAME")
function will also stream an Form State to show in which state the form is. To be able to listen to that callback you can call the function MopinionFlutterIntegrationPlugin.eventsData()
which returns an Stream
. Example of usage:
MopinionFlutterIntegrationPlugin.eventsData().listen(_setFormStateStatus)
void _setFormStateStatus(MopinionFormState state) {
setState(() => _state = state);
}
The Form State callback will be an enum called MopinionFormState
, and these are the possible Form States:
More information about the Form States can be found in each readme of the Native SDKs:
iOS: 2.4.2 Callback variants of the event method Android: Implementing Form State callbacks
¹ These form states are only available in the Android SDK by the moment.
Adding Metadata in the Mopinion SDK is easy, it's achieved by calling the function
await MopinionFlutterIntegrationPlugin.data(map);
This function will receive a Map<String, String>
variable which will contain the metadata you want to set in your events. Example of usage:
Map<String, String> map = {
"age": "29",
"name": "Manuel"
};
await MopinionFlutterIntegrationPlugin.data(map);
await MopinionFlutterIntegrationPlugin.event(yourEvent);
When a key data from the Metadata Map<String, String>
provided to the SDK wants to be deleted then we should just pass the key
value as the following:
MopinionFlutterIntegrationPlugin.removeMetaData("name");
This will remove the key name
from the Metadata Map
provided.
When all Metadata wants to be deleted, it's even simpler, just call
MopinionFlutterIntegrationPlugin.removeAllMetaData();
And all Metadata will be deleted.