7. Registering background listeners
1
Define a Dart callback
import 'package:sentiance_event_timeline/sentiance_event_timeline.dart';
@pragma('vm:entry-point')
Future<void> registerEventTimelineListener() async {
WidgetsFlutterBinding.ensureInitialized();
debugPrint("Registering a new event timeline listener.");
SentianceEventTimeline.registerEventTimelineUpdateListener((timelineEvent) {
// Handle new timeline events here
debugPrint("New timeline event: ${timelineEvent.toString()}");
});
}2
Register listener in native code
import android.app.Application
import com.sentiance.event_timeline_plugin.EventTimelinePlugin
// Don't forget to update your app's manifest:
// <application android:name=".MainApplication" ...></application>
class MainApplication : Application() {
override fun onCreate() {
super.onCreate()
// Initialize the Sentiance SDK first
val initResult = CorePlugin.initialize(this)
// Replace '<your_app_package_name>' with the name of your app package
// as shown inside your project's pubspec.yaml file
val dartLibrary = "package:<your_app_package_name>/background.dart"
// Make sure the callback name specified here matches the name of the
// callback you previously defined in your Dart code
val dartCallbackName = "registerEventTimelineListener"
EventTimelinePlugin.initializeListener(
context = this,
dartEntryPointLibrary = dartLibrary,
dartEntryPointFunctionName = dartCallbackName,
includeProvisionalEvents = true
)
// Other code
}
}3
Declare 3rd party plugins
import 'package:sentiance_core/sentiance_core.dart';
import 'package:sentiance_event_timeline/sentiance_event_timeline.dart';
import 'package:sqflite/sqflite.dart' as sqflite;
@pragma('vm:entry-point')
Future<void> registerEventTimelineListener() async {
WidgetsFlutterBinding.ensureInitialized();
final sqliteDatabase = sqflite.openDatabase(...);
final corePlugin = SentianceCore();
final eventTimelinePlugin = SentianceEventTimeline();
SentianceEventTimeline.registerEventTimelineUpdateListener((timelineEvent) async {
final userId = await corePlugin.getUserId();
eventTimelinePlugin.setTransportTags({"tag": "value"});
});
}Last updated