Once you've installed the Mapp Engage SDK flutter plugin and updated the AppConfig.plist, you can implement push and in-app notification tracking. You can find another example in our sample flutter app.
Implement the Mapp Engage SDK delegate methods to track the receiving/opening of push notifications:
import 'package:mapp_sdk/mapp_sdk.dart';
//initialize mapp sdk
await MappSdk.engage(Config.sdkKey, Config.googleProjectId, Config.server,
Config.appID, Config.tenantID);
// add listeners for delegate methods
MappSdk.handledRemoteNotification =
(dynamic arguments) => remoteNotificationHandler(arguments);
MappSdk.handledRichContent =
(dynamic arguments) => richContentHandler(arguments);
//Android only methods
MappSdk.handledPushOpen =
(dynamic arguments) => pushOpenedHandler(arguments);
MappSdk.handledPushDismiss =
(dynamic arguments) => pushDismissedHandler(arguments);
MappSdk.handledPushSilent =
(dynamic arguments) => pushSilentHandler(arguments);
//define methods from listeners
void remoteNotificationHandler(dynamic arguments) {
print("remote Notification received!");
print(arguments);
}
void richContentHandler(dynamic arguments) {
print("rich Content received!");
print(arguments);
}
void pushOpenedHandler(dynamic arguments) {
print("Push opened!");
print(arguments);
}
void pushDismissedHandler(dynamic arguments) {
print("Push dismissed!");
print(arguments);
}
void pushSilentHandler(dynamic arguments) {
print("Push silent!");
print(arguments);
}Next, For in-app notification tracking, you need to include tracking as follows:
// add listeners for delegate methods
MappSdk.didReceiveDeepLinkWithIdentifier = (dynamic arguments) =>
didReceiveDeepLinkWithIdentifierHandler(arguments);
MappSdk.didReceiveInappMessageWithIdentifier = (dynamic arguments) =>
didReceiveInappMessageWithIdentifierHandler(arguments);
MappSdk.didReceiveCustomLinkWithIdentifier = (dynamic arguments) =>
didReceiveCustomLinkWithIdentifierHandler(arguments);
MappSdk.didReceiveInBoxMessages =
(dynamic arguments) => didReceiveInBoxMessagesHandler(arguments);
MappSdk.inAppCallFailedWithResponse =
(dynamic arguments) => inAppCallFailedWithResponseHandler(arguments);
MappSdk.didReceiveInBoxMessage =
(dynamic arguments) => didReceiveInBoxMessageHandler(arguments);
//define methods for listeners
void didReceiveInappMessageWithIdentifierHandler(dynamic arguments) {
print("Inapp message received!");
print(arguments);
}
void didReceiveCustomLinkWithIdentifierHandler(dynamic arguments) {
print("Custom Link With Identifier received!");
print(arguments);
}
void didReceiveInBoxMessagesHandler(dynamic arguments) {
print("Inbox Messages received!");
print(arguments);
_showMyDialog("Inbox messages", "", jsonEncode(arguments));
}
void inAppCallFailedWithResponseHandler(dynamic arguments) {
print("inApp Call Failed received!");
print(arguments);
}
void didReceiveInBoxMessageHandler(dynamic arguments) {
print("Inbox Message received!");
print(arguments);
}