zendesk_messaging 3.2.3
zendesk_messaging: ^3.2.3 copied to clipboard
Flutter plugin for Zendesk Messaging SDK. Provides in-app customer support messaging with multi-conversation support, real-time events, and JWT authentication.
3.2.3 #
Bug Fixes #
- iOS: Parse the APNs device token as hex before forwarding to
PushNotifications.updatePushNotificationToken. The previous code usedtoken.data(using: .utf8), which produced the UTF-8 bytes of the hex string instead of the 32-byte device token, so Zendesk registered a malformed token and never delivered iOS push. - Android: Use the application context (stored in
onAttachedToEngine) forhandleNotificationinstead of the Activity. The Activity is null in a background isolate / terminated state, so the previous code bailed withno_contextand background pushes never displayed.PushNotifications.displayNotificationonly needs aContext. - Android: Guard
initializeagainst a null Activity to return a clean error instead of aNullPointerException. Push display does not requireinitialize; it usesshouldBeDisplayed/handleNotification.
Documentation #
- Correct the push notification token usage in all README translations and the
updatePushNotificationTokenAPI doc. On iOS, pass the APNs device token fromgetAPNSToken(), not the FCM token fromgetToken()— using the FCM token on iOS silently fails to deliver push. Token retrieval is now split per platform, andonTokenRefreshis guarded to Android (iOS APNs tokens are re-fetched on launch). - Document that
showConversationshould be called once per navigation. Rapid duplicate calls can make the underlying SDK open the default conversation instead of the requested one, so callers that may fire more than once for a single user action (e.g. a notification tap reaching multiple handlers) should de-duplicate.
3.2.2 #
Bug Fixes #
- iOS: Resolve root view controller from active scene for UISceneDelegate apps (#94)
3.2.1 #
Documentation #
- Add multi-language README support
- 繁體中文 (Traditional Chinese)
- 简体中文 (Simplified Chinese)
- Español (Spanish)
- Português (Brasil) (Portuguese)
- 日本語 (Japanese)
- 한국어 (Korean)
- Fix image URL for pub.dev compatibility (use absolute GitHub raw URL)
3.2.0 #
3.1.0 #
New Features #
- Push Notifications Support
updatePushNotificationToken(token)- Register FCM/APNs token with ZendeskshouldBeDisplayed(data)- Check if notification is from Zendesk messaginghandleNotification(data)- Display Zendesk push notificationhandleNotificationTap(data)- Handle notification tap and navigate to conversationZendeskPushResponsibilityenum - Notification classification (messagingShouldDisplay, messagingShouldNotDisplay, notFromMessaging)
Implementation Details #
- Android: Uses official
PushNotificationsclass from Zendesk SDK - iOS: Uses official
PushNotificationsclass withhandleTapcompletion handler - Follows official Zendesk SDK documentation patterns
3.0.0 #
Breaking Changes #
- iOS minimum version: 12.0 -> 14.0
- Dart SDK: ^3.0.0 -> ^3.6.0
- Flutter SDK: >=3.10.0 -> >=3.24.0
Native SDK Updates #
- Android SDK: 2.26.0 -> 2.36.1
- iOS SDK: 2.24.0 -> 2.36.0
- Kotlin: 1.9.24 -> 2.1.21
- Swift: 5.9
New Features #
-
Full Event System: 24 event types via sealed class pattern
UnreadMessageCountChanged- unread count changes with conversation detailsAuthenticationFailed- auth errors with JWT expiration detectionConnectionStatusChanged- network state monitoringConversationAdded,ConversationStarted,ConversationOpened- conversation lifecycleMessagesShown- messages rendered with message dataSendMessageFailed- message send failuresFieldValidationFailed- conversation field validation errorsMessagingOpened,MessagingClosed- UI lifecycleProactiveMessageDisplayed,ProactiveMessageClicked- proactive messagingConversationWithAgentRequested,ConversationWithAgentAssigned,ConversationServedByAgent- agent eventsNewConversationButtonClicked,PostbackButtonClicked- UI interactionsArticleClicked,ArticleBrowserClicked- article eventsConversationExtensionOpened,ConversationExtensionDisplayed- extension eventsNotificationDisplayed,NotificationOpened- push notification events (Android)
-
Multi-Conversation Navigation
showConversation(conversationId)- navigate to specific conversationshowConversationList()- display conversation liststartNewConversation()- start new conversation directlygetUnreadMessageCountForConversation(conversationId)- per-conversation count
-
User Management
getCurrentUser()- get current user with auth typeZendeskUsermodel with id, externalId, authenticationTypeZendeskAuthenticationTypeenum (anonymous, jwt)
-
Connection Status
getConnectionStatus()- get SDK connection stateZendeskConnectionStatusenum (connected, connecting, disconnected, unknown)
-
New Models
ZendeskUser- user informationZendeskMessage- message data with id, conversationId, authorId, content, timestampZendeskLoginResponse- login response dataZendeskEventsealed class hierarchy
Improvements #
- Modern Dart 3.x syntax with sealed classes and pattern matching
- Comprehensive API documentation
- Unit tests for method channels and event parsing
- Enhanced example app with all features demonstrated
- Backwards compatible
unreadMessagesCountStreamfor legacy code
Migration Guide #
See README.md for detailed migration instructions from 2.x.
2.9.3 #
- Update Dart SDK minimum version to 3.0.0 .
- Update Flutter SDK minimum version to 3.10.0 .
- Fix method channel calls never complete.
2.9.2 #
- Fix multi conversation navigation
2.9.1 #
- recover namespace setting for android
2.9.0 #
- fix issue for logoutUser in iOS
- upgrade ios version to 2.24.0
- downgrade android version to 2.13.0
2.8.0 #
- Upgrade zendesk-messaging sdk version to 2.16.0
- Minimum iOS version is now 12
- ADD conversation fields
2.7.7 #
- Add
invalidate()to invalidate the current instance of ZendeskMessaging
2.7.6 #
- Add conversation tag
2.7.5 #
- Upgrade Flutter sdk version
- Upgrade zendesk-messaging sdk version to 2.11.0
2.7.4 #
- Upgrade ZendeskSDKMessaging of iOS to v2.9.0 to be compatible with Xcode 14.3
2.7.3 #
- Fix parameter type issue of handler function
2.7.2 #
- Upgrade Dart sdk version
2.6.0+1 #
- Update versions of environment
2.6.0 #
- Upgrade to 2.6.0
0.0.3 #
- Upgrade to 2.5.0
0.0.2 #
- Authentication
- Global observer
0.0.1 #
- Initial release
