grovs_flutter_plugin 3.1.1
grovs_flutter_plugin: ^3.1.1 copied to clipboard
Flutter plugin for Grovs SDK - Deep linking, smart links, user messaging, and campaign tracking for mobile apps.
3.1.1 #
Added:
- Link details:
linkDetails(path)returns aGrovsLinkDetailsfor a link path, matching the native SDKs. - In-app messages:
pauseInAppMessages,resumeInAppMessages,discardInAppMessages,setInAppExcludedScreens,setInAppDebugLoggingand theonInAppMessagestream ofInAppMessageEvent. - Push campaigns:
isGrovsNotificationandhandleNotificationOpen. Taps on Grovs pushes arrive ononDeeplinkReceived, withlinknull when the push has no link. - iOS: the push token is forwarded automatically, taps on Grovs pushes are counted, and Grovs pushes show while the app is open. Set
UNUserNotificationCenter.current().delegate = selfin yourAppDelegate. - Android: when Firebase is present, the plugin fetches the FCM token and sends it to Grovs at start and each time the SDK is turned on. Nothing is sent while the SDK is disabled.
Changed:
- Updated the native SDKs to Grovs 3.1.
- Android: the Grovs messaging service now has priority -1, so
firebase_messaginghandles messages first when your app uses it.
Removed:
- iOS: the hidden inbox handlers, which the native SDK no longer has.
3.1.0 #
Requires Flutter 3.38.0 or later.
Added:
- iOS: Swift Package Manager support. CocoaPods still works.
handleUrl(url)resolves a Grovs link tapped inside your app. The system does not hand a universal link or app link back to the app that opened it, so these links used to open in a browser.
Changed:
- iOS: the plugin no longer claims incoming links, the same as on Android. Other plugins, such as login callbacks, now always receive their links. Set
FlutterDeepLinkingEnabledtofalseinInfo.plist(andflutter_deeplinking_enabledtofalsein the Android manifest), otherwise Flutter's own deep linking also opens Grovs links and can send them to Safari.
Fixed:
- iOS: apps using the UIScene lifecycle lost the link that launched the app from a closed state. This includes new Flutter apps and apps that Flutter 3.41 or later migrated automatically. The plugin now receives scene events itself. If you added your own SceneDelegate code that forwards links to Grovs, remove it, or links will be delivered twice.
- iOS: the privacy manifest is now included in CocoaPods builds.
3.0.3 #
Changed:
- Android: updated the native SDK to
io.grovs:Grovs:3.0.1.
3.0.2 #
Fixed:
- Android: the SDK is now started from the host activity's own lifecycle instead of application-wide activity callbacks. A
FlutterFragmentActivityattaches the Flutter engine duringonStart, after those callbacks have fired, so the first launch was missed and deferred deep links only resolved after the app went to the background and back. 3.0.1 acceptedFlutterFragmentActivityhosts but did not cover this.
3.0.1 #
Fixed:
- Android: deferred deep links were never resolved on first launch when the host activity extends
FlutterFragmentActivity. The plugin only started the SDK forFlutterActivityhosts. Both host activities now start it.
3.0.0 #
Aligned with native Grovs SDKs 3.0.0 (Android io.grovs:Grovs:3.0.0, iOS Grovs ~> 3.0).
Added:
- Consent gate:
GrovsEnabled(Info.plist) andgrovs_enabled(AndroidManifest.xml) set the initial state,setSDK(bool)changes it at runtime. A deep link that opened the app while disabled is delivered after enabling. GrovsClipboardDomains/grovs_clipboard_domainsconfig for clipboard deferred deep linking.copyToClipboardIosandcopyToClipboardAndroidonGenerateLinkParams.onErrorstream withGrovsErrorandGrovsErrorCode(iOS only for now).- Analytics:
track,trackScreenView,setGlobalTags,setScreenAliases, andGrovs.navigatorObserverfor automatic screen views.
Behavior changes on upgrade:
- The SDK is enabled by default and authenticates on launch as before. Apps with a consent flow must set the config key to false and call
setSDK(true)after consent. - On first launch after install the native SDK may read the clipboard to resolve a deferred deep link. iOS may show the system paste notice.
- Native automatic screen tracking is disabled in the Flutter wrapper. Screen views come from
Grovs.navigatorObserverwhen installed. - Android: the native SDK is configured once per process even when several Flutter engines attach.
- iOS: a deep link lookup that was in flight when
setSDK(false)was called is dropped by the plugin. If consent is granted again before that lookup completes, the native SDK may still deliver it.
Fixed:
logCustomPurchasenow forwardsstartDateon both platforms. Before, it was ignored and the native SDK used the current time.
1.1.0 #
- Added custom base URL support via Info.plist (iOS) and AndroidManifest.xml (Android)
- Added revenue tracking with
logInAppPurchaseandlogCustomPurchasemethods - Added
TransactionTypeenum (buy, cancel, refund) - Bumped iOS SDK to ~> 2.3 and Android SDK to 1.1.1
1.0.1 #
- Documentation improvements
- Added iOS Associated Domains configuration instructions
- Enhanced API documentation with comprehensive examples
- Updated README with complete setup guide
- Improved code comments and inline documentation
1.0.0 #
- Initial release of Grovs Flutter Plugin
- Deep linking support for iOS and Android
- Link generation with custom redirects and tracking parameters
- UTM campaign tracking (utm_campaign, utm_source, utm_medium)
- User identification and custom attributes
- Push notification token management
- In-app messaging support
- Configurable debug levels
- Stream-based deeplink event handling
- Platform-specific configuration via Info.plist (iOS) and AndroidManifest.xml (Android)
- Support for iOS 13.0+ and Android API 21+