0.2.0
What's New
-
Form lifecycle events — New
onFormLifecycleEventstream emits typedFormShown,FormDismissed, andFormCtaClickedevents for in-app forms. Use Dart pattern matching for exhaustive handling. (#75) -
Native SDK upgrade — Now consuming
KlaviyoSwift ~> 5.3.1andklaviyo-android-sdk 4.4.0, which brings:- Push notification action buttons (up to 3 tappable buttons per Klaviyo push, configured in the Klaviyo dashboard — no integration changes required)
- Floating (Android) / Flyout (iOS) in-app form presentation styles
- Cross-platform form lifecycle hooks (surfaced through the new
onFormLifecycleEventstream above)
See klaviyo-android-sdk 4.4.0 and klaviyo-swift-sdk 5.3.0 for full native release notes. (#88)
Bug Fixes
- Android push tap events —
onPushNotificationnow correctly emitspush_notification_openedwhen a user taps a Klaviyo push. Previously the tap event was silently dropped on Android due to acom.klaviyo.namespace prefix mismatch in the intent extras. (#83) - Re-initialization —
KlaviyoSDK().initialize()no longer silently swallows subsequent calls with a different API key, enabling runtime account switching for multi-tenant apps. TheapiKeyis now updated only after the native call succeeds, so a failed re-init does not corrupt state. (#80) - Flutter version compatibility — Relaxed the
metadependency constraint from^1.17.0to^1.15.0so the SDK resolves cleanly against Flutter 3.24.x–3.37.x (these versions pinmetatransitively viaflutter_test). (#82)
Other Changes
- Documentation — README updated to cover push action buttons, the new floating/flyout form layouts, and the typed
onFormLifecycleEventAPI. - Example app — Deferred the Android notification permission prompt to the Push tab so it fires on user opt-in rather than at app launch. (#84)
- Example app — Differentiated pure silent pushes from standard pushes with
content-availablein the iOSAppDelegate, with matching docs in the README's Silent Push section. (#72) - Build & CI — Migrated release workflow to OIDC-based pub.dev publishing (replaces the credential-based
PUB_CREDENTIALSsecret with the Dart team's reusable workflow). (#71) - Build & CI — Fixed local SDK setup script, JitPack branch version handling (
/→~), and pegged the example app's iOSMARKETING_VERSIONto the plugin version. (#74, #76, #89) - README — Removed WIP status banner. (#65)
Full Changelog: 0.1.0...0.2.0
What's Changed
- Migrate release workflow to OIDC-based pub.dev publishing by @ab1470 in #71
- Update README to remove WIP status by @ajaysubra in #65
- [MAGE-218] feat(example/ios): differentiate silent from standard push with content-available by @aahiltn in #72
- Fix JitPack branch version: replace / with ~ in branch names by @evan-masseau in #74
- chore(android) Fix android local SDK setup by @evan-masseau in #76
- fix(deps): relax meta constraint to ^1.15.0 for Flutter 3.24.x-3.37.x compat by @ab1470 in #82
- fix(example): defer notification permission to Push tab by @ab1470 in #84
- chore(scripts): peg example app version to plugin version by @ab1470 in #89
- docs(readme): update for 0.2.0 (Android 4.4.0 / iOS 5.3.0) by @ab1470 in #90
- docs(changelog): fill in 0.2.0 entry by @ab1470 in #92
- fix(scripts): verify newly synced files in bump_version.sh by @ab1470 in #93
- fix(forms): tighten form lifecycle event handling for cross-platform parity by @ab1470 in #94
- docs(forms): add form lifecycle events section to README by @evan-masseau in #95
- Version 0.2.0 Release by @evan-masseau in #77
Full Changelog: 0.1.0...0.2.0