3.3.1
May 10, 2018 ยท View on GitHub
This document tracks changes to the API between versions.
#5.0.0
- The
engagemethods no longer returns a value. If your app needs to know whether an interaction was displayed, use one of the methods that accept a completion handler. - The
canShowInteractionForEventandcanShowMessageCenterhave been replaced with-queryCanShowInteractionForEvent:completion:and-queryCanShowMessageCenterWithCompletion:. - The
Apptentivesingleton now implementsUNUserNotificationCenterDelegate, allowing for streamlined integration with Apptentive push notifications.
#4.0.5
- Passing
nilfor the view controller parameter of theengagemethod will now open interactions in a new window. Thedelegateproperty of theApptentivesingleton will no longer be asked for a view controller to present interactions from.
#4.0.0
- Adds a new
ApptentiveConfigurationclass. - Replaces the
-setAPIKey:instance method with a-registerWithConfiguration:class method. - Adds methods for logging multiple users in and out.
- Adds a new method for forwarding local notifications from the application delegate to the Apptentive SDK. This method must be called for push notifications to reach the Apptentive SDK.
- Removes the static library target. Use the dynamic framework target instead.
- Adds a runtime log level setting, which defaults to
INFOfor all build configurations.
3.3.1
- Adds a dynamic framework target to the ApptentiveConnect project. The static library and resource bundle targets should be considered deprecated.
3.3.0
- Drops support for iOS 7 devices and requires Xcode 8.
- Building for iOS 8 and later devices no longer results in deprecation warnings.
- New Swift 3 names for a number of methods and properties. Swift 2.x projects should continue to work with the existing names.
- A new
sharedproperty on theApptentiveclass that aliases the+sharedConnectionmethod (This class property is currently not visible in our documentation due to a limitation in our documentation software).
3.0.0
- The
ATConnectclass has been renamed toApptentive. A compatibility alias is provided for legacy code. - The
ATNavigationControllerclass has been renamed toApptentiveNavigationController. A compatibility alias is provided for legacy code. - The
apiKeyproperty on the Apptentive instance has been renamed toAPIKeyto match Apple's naming guidelines. The previous spelling is included for compatibility, but is deprecated. - The UI for surveys has undergone a complete visual redesign, but still retains the same functionality.
- A new style sheet object allows extensive customization of the Apptentive UI. See our Customization Guide for details.
2.1.0
- Apptentive Push Notifications will, if possible, now trigger a message fetch in the background. To enable background fetch, several API and project changes are needed:
- Added
didReceiveRemoteNotification:fromViewController:fetchCompletionHandler:API method for passing App Delegate remote notifications to Apptentive. - To enable Message Center background fetch, you should use the
...fetchCompletionHandler:versions of...didReceiveRemoteNotification:...on the App Delegate and on ATConnect. - To enable Message Center background fetch, your app must set Remote Notifications as a valid Background Mode. This mode can be enabled in Xcode via your Target's Capabilities tab, or by adding the value
remote-notificationas aUIBackgroundModein your app's Info.plist. - A
BOOLreturn type has been added to the ATConnectdidReceiveRemoteNotification:...methods. The return value indicates if the Push Notification was sent by Apptentive. - The
completionHandlerblock will be called by Apptentive when the message fetch is completed. To ensure that messages can be retrieved, please do not call thecompletionHandlerblock yourself if the notification was sent by Apptentive. - If the Push Notification was not sent by Apptentive, the parent app is responsible for calling the
completionHandlerblock. - ATConnect has new strongly-typed setters for Boolean, string, number, timestamp and version types for custom person and device data.
- ATConnect is now annotated with nullability and collection types, where applicable.
- The image picker used for attachments in Message Center requires the application window to support portrait orientation (normally configured in Info.plist) for phone-idiom devices. If portrait orientation is not available, the attach button will be hidden and users will be unable to attach files.
2.0.2
- ATConnect's tintColor property is now deprecated in favor of using UIAppearance properties. See the iOS Customization Guide for details.
2.0.0
- ApptentiveConnect now has a deployment target of iOS 7.0, which will support iOS 7, 8, and 9. In the 2.0.0 release we have dropped support for iOS 5 and 6.
- The ApptentiveConnect project has been converted to use Automatic Reference Counting (ARC).
- Message Center UI has been redesigned and improved. Message Center strings and settings are now delivered from the server, allowing you to make remote changes at any time from the Apptentive dashboard.
- The one-way Feedback Dialog has been removed in favor of Message Center and two-way conversations.
- Added
canShowMessageCentermethod. If SDK has not yet synced with Apptentive, you will be unable to display Message Center. UsecanShowMessageCenterto determine if Message Center is ready to be displayed. If Message Center is not ready you could, for example, hide the "Message Center" button in your interface. - Added
BOOLreturn value to thepresentMessageCenterFromViewController:methods. Indicates if Message Center was displayed. IfNO, a "We're attempting to connect" view is displayed instead. - Added
canShowInteractionForEvent:and deprecatedwillShowInteractionForEvent:to better match thecanShowMessageCenternaming convention. - Added
personNameandpersonEmailAddressproperties toATConnect. Set these to pre-populate the respective field in Message Center. - Removed
initialUserNameandinitialUserEmailAddressproperties in favor of the abovepersonNameandpersonEmailAddress. - Added Apptentive Push Notifications, which can be activated via your Apptentive dashboard. You can now implement Push Notifications for new Message Center messages without needing your own Urban Airship, Parse, or Amazon SNS account.
- Added
setPushNotificationIntegration:withDeviceToken:method for setting a Push Notification Provider. Use theATPushProviderenum to specify a service provider, along with thedeviceTokenfromapplication:didRegisterForRemoteNotificationsWithDeviceToken:. Currently supported Push Notification service providers include Apptentive, Urban Airship, Amazon SNS, and Parse. - In light of the new
setPushNotificationIntegration:withDeviceToken:method, removed the legacy integration API methods:addIntegration:withConfiguration:,addIntegration:withDeviceToken:,removeIntegration:,addApptentiveIntegrationWithDeviceToken:,addUrbanAirshipIntegrationWithDeviceToken:,addAmazonSNSIntegrationWithDeviceToken:, andaddParseIntegrationWithDeviceToken:. - Removed
useMessageCenter,initiallyUseMessageCenter, andinitiallyHideBrandingproperties. - Added
-unreadMessageCountAccessoryView:(BOOL)apptentiveHeart, a method that returns a UIView that can be used to display the current number of unread messages in Message Center (with an optional Apptentive heart logo). This is designed to be set as theaccessoryViewin aUITableViewCellthat launches Message Center. - Message Center is still presented via the
presentMessageCenterFromViewController:API. However, if the device has not yet synced with Apptentive, Message Center will be unavailable and a "We're attempting to connect" screen will be displayed instead. This should occur rarely in production apps, but you may see it during development. - Added an in-app banner that can be displayed when new Message Center messages arrive. This banner is toggled via the Apptentive dashboard, not via an API method. Implement the
viewControllerForInteractionsWithConnection:delegate method to pass a View Controller from which to display Message Center after this banner is tapped. If no View Controller is provided, the SDK will attempt to find and use the top-most View Controller.
1.6.0
- Added
willShowInteractionForEvent:method for determining if an interaction will be shown the next time you engage the given event. - Renamed
engage:(NSString *)...parameter name fromeventLabeltoevent.
1.5.7
- Added
ATSurveyShownNotificationnotification when a survey is shown.
1.5.5
- Added
addParseIntegrationWithDeviceToken:for integrating with Parse's Push Notification service.
1.5.4
-
Changed the App Store rating URL to open the "Reviews" tab directly in iOS 7.1+.
-
Added API methods for attaching
customDataandextendedDatato events:
engage:withCustomData:fromViewController:engage:withCustomData:withExtendedData:fromViewController:
- Added methods to easily construct
extendedDatadictionaries in the specific Apptentive format:
extendedDataDate:extendedDataLocationForLatitude:longitude:extendedDataCommerceWithTransactionID:affiliation:revenue:shipping:tax:currency:commerceItems:extendedDataCommerceItemWithItemID:name:category:price:quantity:currency:
1.5.3
- Added ability to remotely hide Apptentive branding in your app via the Apptentive dashboard, contingent upon your account plan.
- Added
initiallyHideBrandingproperty, which hides Apptentive branding in the time prior to the app's initial configuration being retrieved. - Removed
showTagLineproperty, which has been replaced byinitiallyHideBrandingand the remote configuration.
1.5.1
- The
showTagLineproperty ofATConnectnow makes the "Powered By Apptentive" logo in Message Center unclickable. - The language code used for delivering localizations now uses
[[NSLocale preferredLanguages] firstObject]rather than theNSLocaleLanguageCodelocale component.
1.5.0
Surveys are now targeted at Apptentive events via your online dashboard. Log events in your app by calling engage:fromViewController.
- Removed
ASurveys.hheader file. - Moved
ATSurveySentNotificationandATSurveyIDKeyfromATAppRatingFlowtoATConnect. - Removed
ATSurveyNewSurveyAvailableNotification. - Removed
ATAppRatingFlow.hheader file. - Moved
apiKeyproperty fromATAppRatingFlowtoATConnect. - Moved
ATAppRatingFlowUserAgreedToRateAppNotificationnotification fromATAppRatingFlowtoATConnect.
1.4.3
- Added
debuggingOptionsproperty on ATConnect that allows the developer to specify debug logging preferences for their app.
1.4.2
- Added
addAmazonSNSIntegrationWithDeviceToken:method for integrating with Amazon Web Services (AWS) Simple Notification Service (SNS).
1.4.0
- Argument
codePointrenamed toeventLabelinengage:fromViewController:
1.3.0
- Added convenience methods for integrating with Apptentive:
addIntegration:withDeviceToken:addUrbanAirshipIntegrationWithDeviceToken:
1.2.9
The initialUserEmailAddress can now be updated after a user sends feedback with no email address.
1.2.7
Added a BOOL return type to the engage: method.
Added the property initiallyUseMessageCenter to set the local, initial Message Center setting. This will be overridden by the server-based Message Center configuration when it is downloaded.
ATConnect
- Replace
- (void)engage:fromViewController:' with- (BOOL)engage:fromViewController:` - Added
initiallyUseMessageCenterproperty.
1.2.6
We added a workaround for inherited tintColor values which don't look good with our UI.
We also added some new methods for adding files to the user's feedback. The files will not be shown in message center, and are useful for sending debug logs.
ATConnect
- Added
@property tintColorfor overriding the tint color in our UI, in case you're using one that doesn't work well with it in your app. - Added
- (void)sendAttachmentText:(NSString *)text - Added
- (void)sendAttachmentImage:(UIImage *)image - Added
- (void)sendAttachmentFile:(NSData *)fileData withMimeType:(NSString *)mimeType
1.2.5
ATAppRatingFlow
- Added
openAppStoremethod that immediately opens the app's page on the App Store without going through the Apptentive Ratings Flow.
1.2.4
ATConnect
Added methods for configuring 3rd-party integration services and handling incoming push notifications. Current support for Urban Airship.
[[ATConnect sharedConnection] addIntegration:ATIntegrationKeyUrbanAirship withConfiguration:@{@"token": @"YourUrbanAirshipToken"}];
- Added
addIntegration:withConfiguration: - Added
removeIntegration: - Added
didReceiveRemoteNotification:fromViewController:
ATAppRatingFlow
Added methods to determine if the Apptentive Rating Flow was shown for a particular call of showRatingFlowFromViewControllerIfConditionsAreMet:
- Replace
- (void)showRatingFlowFromViewControllerIfConditionsAreMet:with- (BOOL)showRatingFlowFromViewControllerIfConditionsAreMet: - Now posting
ATAppRatingDidNotPromptForEnjoymentNotificationNSNotification when rating flow is not shown.
1.2.2
ATConnect
- Added
- (void)presentMessageCenterFromViewController:(UIViewController *)viewController withCustomData:(NSDictionary *)customData; - Added
- (void)engage:(NSString *)codePoint fromViewController:(UIViewController *)viewController; - Added
- (void)addIntegration:(NSString *)integration withToken:(NSString *)token; - Added
- (void)removeIntegration:(NSString *)integration;
1.1.1
ATConnect
- Deprecated
useMessageCenterproperty.
1.1.0
We added a method for users who only want to send feedback, not use the entire Message Center.
ATConnect
- Added
@property useMessageCenter
1.0.1
We have deprecated a few methods and added some new methods where appropriate.
ATConnect
- Deprecated
-addCustomData:withKey: - Deprecated
-removeCustomData:withKey: - Added
-addCustomPersonData:withKey: - Added
-removeCustomPersonData:withKey: - Added
-addCustomDeviceData:withKey: - Added
-removeCustomDeviceData:withKey:
ATAppRatingFlow
- Deprecated
appName
1.0
The following changes from the 0.5.x series were made.
We are moving over to a unified message center, and while breaking the feedback API have decided to take the opportunity to clean up the ratings flow API as well. Below are detailed changes that have been made to the API, but from a simple perspective, you'll want to:
In feedback:
- Replace
-presentFeedbackControllerFromViewController:with-presentMessageCenterFromViewController:. - Replace
addAdditionalInfoToFeedback:withKey:withaddCustomData:withKey:.
In ratings:
- Replace
+sharedRatingFlowWithAppID:with+sharedRatingFlow, and set theappIDproperty. - Remove calls to
-appDidEnterForeground:viewController:and-appDidLaunch:viewController:. - Add calls to
-showRatingFlowFromViewControllerIfConditionsAreMet:where you want the ratings flow to show up. - Replace
-userDidPerformSignificantEvent:viewController:with-logSignificantEvent.
In surveys:
- Replace
+hasSurveyAvailablewith+hasSurveyAvailableWithNoTags. - Remove calls to
+checkForAvailableSurveys. This is now automatic.
ATConnect
initialNamechanged toinitialUserName.initialEmailAddresschanged toinitialUserEmailAddress+resourceBundleis now privateATLocalizedStringis now private- Added
-presentMessageCenterFromViewController: - Added
-dismissMessageCenterAnimated:completion: - Added
-unreadMessageCount - Added
addCustomData:withKey: - Added
removeCustomDataWithKey:
Feedback-related API has been removed.
shouldTakeScreenshotfeedbackControllerType-presentFeedbackControllerFromViewController:-dismissFeedbackControllerAnimated:completion:-addAdditionalInfoToFeedback:withKey:-removeAdditionalInfoFromFeedbackWithKey:
ATSurveys
- Renamed
+hasSurveyAvailableto+hasSurveyAvailableWithNoTags. - Renamed
+presentSurveyControllerFromViewController:to+presentSurveyControllerWithNoTagsFromViewController: - Removed
+checkForAvailableSurveys
ATAppRatingFlow
- Renamed
+sharedRatingFlowWithAppID:to+sharedRatingFlow - Added
@property appID. - Removed
-appDidEnterForeground:viewController: - Removed
-appDidLaunch:viewController: - Removed
-userDidPerformSignificantEvent:viewController: - Added
-showRatingFlowFromViewControllerIfConditionsAreMet: - Added
-logSignificantEvent -showEnjoymentDialog:is now private-showRatingDialog:is now private