initPlatformState method
Implementation
Future initPlatformState() async {
try {
await OneSignal.Debug.setLogLevel(OSLogLevel.verbose);
OneSignal.initialize(admodel?.oneSignalApp ?? '');
await Future.delayed(const Duration(milliseconds: 500)); // small delay
await OneSignal.consentRequired(true);
bool granted = await OneSignal.Notifications.requestPermission(true);
await Future.delayed(const Duration(milliseconds: 500)); // small delay
await OneSignal.LiveActivities.setupDefault();
await OneSignal.Notifications.clearAll();
OneSignal.User.pushSubscription.addObserver((state) {
print(OneSignal.User.pushSubscription.optedIn);
print(OneSignal.User.pushSubscription.id);
print(OneSignal.User.pushSubscription.token);
print(state.current.jsonRepresentation());
});
OneSignal.User.addObserver((state) {
var userState = state.jsonRepresentation();
print('OneSignal user changed: $userState');
});
OneSignal.Notifications.addPermissionObserver((state) {
print("Has permission " + state.toString());
});
OneSignal.Notifications.addClickListener((event) {
print('NOTIFICATION CLICK LISTENER CALLED WITH EVENT: $event');
});
OneSignal.Notifications.addForegroundWillDisplayListener((event) {
print(
'NOTIFICATION WILL DISPLAY LISTENER CALLED WITH: ${event.notification.jsonRepresentation()}',
);
/// Display Notification, preventDefault to not display
event.preventDefault();
/// Do async work
/// notification.display() to display after preventing default
event.notification.display();
});
OneSignal.InAppMessages.addClickListener((event) {});
OneSignal.InAppMessages.addWillDisplayListener((event) {
print("ON WILL DISPLAY IN APP MESSAGE ${event.message.messageId}");
});
OneSignal.InAppMessages.addDidDisplayListener((event) {
print("ON DID DISPLAY IN APP MESSAGE ${event.message.messageId}");
});
OneSignal.InAppMessages.addWillDismissListener((event) {
print("ON WILL DISMISS IN APP MESSAGE ${event.message.messageId}");
});
OneSignal.InAppMessages.addDidDismissListener((event) {
print("ON DID DISMISS IN APP MESSAGE ${event.message.messageId}");
});
} catch (e) {
if (kDebugMode) {
print(e);
}
}
}