init method Null safety
Asynchronously initializes the EAnalytics SDK
Call it ONCE before any tracking request at the top-level of your app. It will try to sync any failed tracking attemps locally stored. You can optionnally request tracking authorization for iOS devices by passing the requestTrackingAuhtorization flag to the init method.
await Eulerian.init('test.domain.dev', requestTrackingAuthorization: true)
Implementation
static Future<void> init(String domain, {bool requestTrackingAuthorization = false}) async {
try {
assert(!domain.contains('.eulerian.com'), 'Domain cannot contain ".eulerian.com"');
assert(Uri.parse('https://$domain').isAbsolute, 'Domain is not well formed');
/* if called during initState, delay initialization */
if (requestTrackingAuthorization) WidgetsBinding.instance!.addPostFrameCallback((_) => getAdvertiserId(true));
await EAGlobalParams.init();
Eulerian._instance.initialized = true;
Eulerian._instance._postHandler = createPostHandler(domain, _logger);
/* sync saved properties */
Eulerian._instance._post(await getStoredProperties(logger: _logger));
_logger.info('Initilization succeeded for domain $domain');
} catch (e) {
_logger.error('Initialization failed ${e.toString()}');
}
}