lotse 0.2.0
lotse: ^0.2.0 copied to clipboard
Deep links, attribution, analytics, in-app feedback and push for Flutter apps, on one event stream with the Lotse backend.
0.2.0 #
-
Message pushes: your backend can send a push to one user or one install through the Lotse server API (
POST /v1/messages). A tapped message push reaches the app throughinitialPushandpushOpenedlike a campaign push, with itstargetPath, and the SDK recordspush_openwith the propsmessageIdanddeliveryId(campaign pushes keepcampaignIdanddeliveryId). With an older SDK the notification still shows, but a tap only opens the app. -
A push to a
userIdonly reaches devices on whichidentifyran with a validuserHash, so it needs the identity secret of the project (see "Identity verification" in the README). Without it, address the push to the install: your app handsLotse.instance.installIdto your backend. -
Breaking:
LotsePush.campaignIdis nowString?, null for a message push; the newLotsePush.messageIdis set instead. The unnamed constructor is replaced byLotsePush.campaignandLotsePush.message.Migration: code that only routes
push.targetPathchanges nothing. Code that readscampaignIdchecks it for null (if (push.campaignId case final id?)). Tests that build a push writeLotsePush.campaign(campaignId: '7', deliveryId: '42')instead ofLotsePush(campaignId: '7', deliveryId: '42'). -
Message data: a message from the server API can carry
datafor your app. A tapped message push hands it to the app inLotsePush.data, without the keys of Lotse, FCM and APNs;Lotse.messageDataOf(message.data)reads it anywhere, also in a background handler withoutinit. -
Silent pushes: a message with
"silent": trueshows no notification and is never a tap, so it never reachesinitialPushorpushOpened. Read it withLotse.messageDataOfinFirebaseMessaging.onBackgroundMessageor in a native handler. Abadgesets the number on the app icon on iOS. -
Push permission:
Lotse.init(requestPushPermission: false)does not ask at start;Lotse.instance.requestPushPermission()asks later and returns whether notifications are allowed. The push token is reported either way. -
Analytics consent:
Lotse.init(analytics: false)andLotse.instance.setAnalyticsEnabled(...). Off, no event, heatmap tap or heatmap screenshot leaves the device, and what waits is dropped; push, links, feedback, users, in-app messages and surveys keep working. -
macOS, Windows and Linux: the SDK runs there without push and no longer touches Firebase. See "On macOS, Windows and Linux" in the README for the entitlements a macOS app needs.
-
Replay pause:
LotseReplayPausestops the replay of the last seconds while its child is shown, for screens that must never be recorded, such as a mode for children. -
iOS push without Firebase: the SDK takes the APNs token and tapped pushes through a small native part of its own and needs no
GoogleService-Info.plist. The project needs an APNs key for the iOS app; the SDK no longer reports an FCM token on iOS.
0.1.2 #
- The SDK reports the package name (Android) or bundle id (iOS) of the app. With several apps in one project, each with its own push credential, a push now goes out with the credential of the device's own app. Older versions keep the project's first credential.
- Web apps that use the SDK compile to WebAssembly (
flutter build web --wasm). On the web, the SDK no longer imports the libraries ofpackage_info_plus,device_info_plusandflutter_local_notificationsthat pull indart:io.
0.1.1 #
- pub.dev lists iOS and web next to Android. The SDK ran there already; only the install referrer is Android only, and the SDK skips it elsewhere.
- The README explains how to install the agent skills with the
skillsCLI.
0.1.0 #
First release on pub.dev.
- Setup:
Lotse.initwith the public key from the console registers the device and reportssession_start.Lotse.captureLaunchLinkskeeps a link that opens the app beforeinitis done. - Links: deferred deep links after an install from a link (
deferredLink),resolveLink, and the Play install referrer for attribution on Android. - Analytics:
trackwith a queue that survives being offline, screen views withLotseScreenObserver, heatmaps from taps, app updates. - Users:
identifyandreset, with identity verification by a hash your backend computes. - Feedback: the feedback sheet with screenshot and masking (
LotseConfidential,LotseUnmasked), replay of the last seconds, conversations with unread count, support chat, feature board with votes, surveys and in-app messages, custom texts. - Push: FCM on Android and iOS,
initialPushandpushOpenedfor tapped pushes. - Agent skills for setup, events, deep links, push, feedback and the Lotse MCP server in
skills/.