This is a major release, please see our migration guide for more info on how to update your current Batch implementation.
Plugin
- Updated Batch to 2.0. For more information see the ios and android changelog .
- Batch requires iOS 13.0 or higher.
- Batch requires a
minSdk
level of 21 or higher.
iOS
- Removed deprecated
canUseIDFA
property fromBatchPluginConfiguration
. - Removed
canUseAdvancedDeviceInformation
property fromBatchPluginConfiguration
. You should now use thesetAutomaticDataCollection
API. - Added
profileCustomIdMigrationEnabled
property to disable the profile custom id migration. This can also be done from theInfo.plist
file. See our documentation for info. - Added
profileCustomDataMigrationEnabled
property to disable the profile custom data migration. This can also be done from theInfo.plist
file. See our documentation for info.
Android
- Removed deprecated
canUseAdvertisingID
method fromBatchPluginConfiguration
. - Removed
setCanUseAdvancedDeviceInformation
andcanUseAdvancedDeviceInformation
method fromBatchPluginConfiguration
. You should now use the newsetAutomaticDataCollection
API. - Added
setProfileCustomIdMigrationEnabled
method to disable the profile custom id migration. This can also be done from theAndroidManifest
meta-data. See our documentation for info. - Added
setProfileCustomDataMigrationEnabled
method to disable the profile custom data migration. This can also be done from theAndroidManifest
meta-data. See our documentation for info.
Core
- Added method
isOptedOut
to checks whether Batch has been opted out from or not. - Added method
setAutomaticDataCollection
to fine-tune the data you authorize to be tracked by Batch.
User
- Removed method
trackTransaction
with no equivalent. - Removed method
BatchUser.newEditor
and the related classBatchUserDataEditor
, you should now useBatchProfile.instance.newEditor()
which return an instance ofBatchProfileAttributeEditor
. - Added method
clearInstallationData
which allows you to remove the installation data without modifying the current profile.
Event
This version introduced two new types of attribute that can be attached to an event : Array and Object.
- Removed
trackEvent
APIs from the user module. You should now useBatchProfile.instance.trackEvent
. BatchEventData
has been renamed intoBatchEventAttributes
.- Added support of type Array and Object with the following:
- Added
putObject
method toBatchEventAttributes
. - Added
putObjectList
methodBatchEventAttributes
. - Added
putStringList
methodBatchEventAttributes
.
- Added
- Removed
addTag
API fromBatchEventData
You should now use the$tags
key inBatchEventAttributes
with theputStringList
method. - Removed parameter
label
fromtrackEvent
API. You should now use the$label
key inBatchEventAttributes
with theputString
method.
Profile
Introduced BatchProfile
, a new module that enables interacting with profiles. Its functionality replaces most of BatchUser used to do.
- Added
identify
API as replacement ofBatchUser.instance.newEditor().setIdentifier
. - Added
newEditor
method to get a new instance of aBatchProfileAttributeEditor
as replacement ofBatchUserDataEditor
. - Added
trackEvent
API as replacement of theBatchUser.instance.trackEvent
methods. - Added
trackLocation
API as replacement of theBatchUser.instance.trackLocation
method.
Plugin
- Dart 2.15+ is now required.
- Updated Batch to 1.21.0.
- Batch requires iOS 12.0 or higher.
- Batch now compiles with and targets SDK 34 (Android 14).
User
- Removed automatic collection of the advertising id:
- Android's Methods
setCanUseAdvertisingID
andcanUseAdvertisingID
fromBatchPluginConfiguration
are now deprecated and do nothing. - Android's manifest configuration
com.batch.flutter.use_gaid
has been removed. - iOS's property
canUseIDFA
fromBatchPluginConfiguration
is now deprecated and does nothing. - iOS's Info.plist property
BatchFlutterCanUseIDFA
has been removed. - You need to collect it from your side and pass it to Batch via the added
setAttributionIdentifier(String? id)
method. Batch will persist it across starts.
- Android's Methods
- Added
setEmail(String? email)
method toBatchUserDataEditor
. This requires to have a user identifier registered or to call thesetIdentifier
method on the editor instance beforehand. - Added
setEmailMarketingSubscriptionState(BatchEmailSubscriptionState state)
method toBatchUserDataEditor
.
Inbox
- Added
hasLandingMessage
property toBatchInboxNotificationContent
. - Added
displayNotificationLandingMessage(BatchInboxNotificationContent notification)
method toBatchInboxFetcher
.
Plugin
- Updated Batch to 1.19.2.
Bumping your Android project's
compileSdkVersion
to33
might be required. Xcode 13.3 required if your project uses bitcode.
Push
- Added Android implementation of the
batch.push.requestNotificationAuthorization()
API. This allows you to request for the new notification permission introduced in Android 13. See the documentation for more info.
Plugin
- Updated Batch to 1.19.0.
Bumping your Android project's
compileSdkVersion
to31
might be required. Xcode 13.3 required if your project uses bitcode.
Inbox
- Silent notifications are now filtered on Android rather than throwing an exception when fetched.
Plugin
- Android: Move away from jCenter and use Maven Central.
Plugin
- Updated dependencies so that the project can be built using Flutter 2.10.
Bumping your Android project'scompileSdkVersion
to31
might be required.
Plugin
- Android: Fixed an issue where Batch's "advanced device information" was disabled by default and not configurable using the Manifest.
- Android: Manifest configuration of the initial Do Not Disturb state now works as expected.
Plugin
- Update Batch iOS to 1.18.1
- Work around a Flutter issue where a wrong nullability annotation resulted in a debug app crashing when started from the home screen. The scenario is still unsupported by Flutter, but the app will not crash anymore.
Plugin
- Update Batch to 1.18
User
- Added support for the URL attribute and event data type.
Initial stable release 🎉
Changes since RC:
Inbox
- Removed
isDeleted
onBatchInboxNotificationContent
as it doesn't work like it does on the native SDK due to plugin limitations.
Inbox
- Fix
limit
andmaxPageSize
staying at their default values.
First Release Candidate
Messaging
- Added Do Not Disturb support.
Inbox
- Calling
dispose()
on a disposed fetcher doesn't throw anymore. - Added
markAsRead()
,markAllAsRead()
andmarkAsDeleted()
. - Added
limit
andmaxPageSize
togetFetcherForInstallation()
andgetFetcherForUser()
.
Inbox
- Added Batch Inbox support:
- Fetchers can be instanciated for both Installation and User modes.
fetchNewNotifications()
,fetchNextPage()
,get allNotifications
anddispose()
have been implemented.markAsRead()
,markAsDeleted()
and pagination configuration will come in a later beta.
Push
- Added
setShowForegroundNotificationsOniOS()
, which can enable foreground notification display on iOS.
Note: This requiresBatchUNUserNotificationCenterDelegate
to be set as yourUNUserNotificationCenterDelegate
in the native integration.
User
- Added
get attributes
andget tagCollections
properties to read back previously set attributes and tag collections. - Added
get identifier
,get language
andget region
to read back the user identifier and language/region overrides.
Core
- Added
showDebugView()
. - Added
optIn()
,optOut()
andoptOutAndWipeData()
.isOptedOut
will come in a later seed.
Push
- Added
requestProvisionalNotificationAuthorization()
.
User
- Added
trackEvent()
,trackTransaction()
,trackLocation()
and theBatchEventData
class. - Added
newEditor()
which returns aBatchUserDataEditor
instance, allowing you to edit the user profile (attributes, tags, language/region, custom identifier).
- First Batch Flutter plugin beta release.