Initialization
To initialize the SDK you have to add MBMessages to the array of plugins of MBurger.
MBManager.shared.apiToken = 'YOUR_API_TOKEN';
MBManager.shared.plugins = [MBMessages()];To show in app message correctly you have to embed your main widget in a MBMessagesBuilder like this:
@override
Widget build(BuildContext context) {
return MaterialApp(
...
home: MBMessagesBuilder(
child: Scaffold(
...
),
),
);
}Why? To present in app messages MBMessages uses the showDialog function that needs a BuildContext. Embedding your main Scaffold in a MBMessagesBuilder let the SDK know always what context to use to show in app messages.
Initialize MBMessages with parameters
You can set a couples of parameters when initializing the MBMessages plugin:
MBMessages messagesPlugin = MBMessages(
messagesDelay: 1,
automaticallyCheckMessagesAtStartup: true,
debug: false,
themeForMessage: (message) => MBInAppMessageTheme(),
onButtonPressed: (button) => _buttonPressed(button),
);messagesDelay: it's the time after which the messages will be displayed once fetched
automaticallyCheckMessagesAtStartup: if the plugin should automatically check messages at startup. By default it's true.
debug: if this is set to
true, all the message returned by the server will be displayed, if this is set tofalsea message will appear only once for app installation. This isfalseby defaultthemeForMessage: a function to provide a message theme (colors and fonts) for in app messages.
onButtonPressed: a callback called when a button of an in app message iis pressed.
Last updated
Was this helpful?