Skip to content

Latest commit

 

History

History
296 lines (198 loc) · 16.6 KB

APIChanges.md

File metadata and controls

296 lines (198 loc) · 16.6 KB

This document tracks changes to the API between versions.

#5.0.0

  • The engage methods 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 canShowInteractionForEvent and canShowMessageCenter have been replaced with -queryCanShowInteractionForEvent:completion: and -queryCanShowMessageCenterWithCompletion:.
  • The Apptentive singleton now implements UNUserNotificationCenterDelegate, allowing for streamlined integration with Apptentive push notifications.

#4.0.5

  • Passing nil for the view controller parameter of the engage method will now open interactions in a new window. The delegate property of the Apptentive singleton will no longer be asked for a view controller to present interactions from.

#4.0.0

  • Adds a new ApptentiveConfiguration class.
  • 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 INFO for 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 shared property on the Apptentive class that aliases the +sharedConnection method (This class property is currently not visible in our documentation due to a limitation in our documentation software).

3.0.0

  • The ATConnect class has been renamed to Apptentive. A compatibility alias is provided for legacy code.
  • The ATNavigationController class has been renamed to ApptentiveNavigationController. A compatibility alias is provided for legacy code.
  • The apiKey property on the Apptentive instance has been renamed to APIKey to 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-notification as a UIBackgroundMode in your app's Info.plist.
  • A BOOL return type has been added to the ATConnect didReceiveRemoteNotification:... methods. The return value indicates if the Push Notification was sent by Apptentive.
  • The completionHandler block will be called by Apptentive when the message fetch is completed. To ensure that messages can be retrieved, please do not call the completionHandler block 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 completionHandler block.
  • 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 canShowMessageCenter method. If SDK has not yet synced with Apptentive, you will be unable to display Message Center. Use canShowMessageCenter to 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 BOOL return value to the presentMessageCenterFromViewController: methods. Indicates if Message Center was displayed. If NO, a "We're attempting to connect" view is displayed instead.
  • Added canShowInteractionForEvent: and deprecated willShowInteractionForEvent: to better match the canShowMessageCenter naming convention.
  • Added personName and personEmailAddress properties to ATConnect. Set these to pre-populate the respective field in Message Center.
  • Removed initialUserName and initialUserEmailAddress properties in favor of the above personName and personEmailAddress.
  • 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 the ATPushProvider enum to specify a service provider, along with the deviceToken from application: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:, and addParseIntegrationWithDeviceToken:.
  • Removed useMessageCenter, initiallyUseMessageCenter, and initiallyHideBranding properties.
  • 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 the accessoryView in a UITableViewCell that 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 from eventLabel to event.

1.5.7

  • Added ATSurveyShownNotification notification 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 customData and extendedData to events:

  • engage:withCustomData:fromViewController:
  • engage:withCustomData:withExtendedData:fromViewController:
  • Added methods to easily construct extendedData dictionaries 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 initiallyHideBranding property, which hides Apptentive branding in the time prior to the app's initial configuration being retrieved.
  • Removed showTagLine property, which has been replaced by initiallyHideBranding and the remote configuration.

1.5.1

  • The showTagLine property of ATConnect now makes the "Powered By Apptentive" logo in Message Center unclickable.
  • The language code used for delivering localizations now uses [[NSLocale preferredLanguages] firstObject] rather than the NSLocaleLanguageCode locale 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.h header file.
  • Moved ATSurveySentNotification and ATSurveyIDKey from ATAppRatingFlow to ATConnect.
  • Removed ATSurveyNewSurveyAvailableNotification.
  • Removed ATAppRatingFlow.h header file.
  • Moved apiKey property from ATAppRatingFlow to ATConnect.
  • Moved ATAppRatingFlowUserAgreedToRateAppNotification notification from ATAppRatingFlow to ATConnect.

1.4.3

  • Added debuggingOptions property 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 codePoint renamed to eventLabel in engage: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 initiallyUseMessageCenter property.

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 tintColor for 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 openAppStore method 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 ATAppRatingDidNotPromptForEnjoymentNotification NSNotification 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 useMessageCenter property.

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: with addCustomData:withKey:.

In ratings:

  • Replace +sharedRatingFlowWithAppID: with +sharedRatingFlow, and set the appID property.
  • 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 +hasSurveyAvailable with +hasSurveyAvailableWithNoTags.
  • Remove calls to +checkForAvailableSurveys. This is now automatic.

ATConnect

  • initialName changed to initialUserName.
  • initialEmailAddress changed to initialUserEmailAddress
  • +resourceBundle is now private
  • ATLocalizedString is now private
  • Added -presentMessageCenterFromViewController:
  • Added -dismissMessageCenterAnimated:completion:
  • Added -unreadMessageCount
  • Added addCustomData:withKey:
  • Added removeCustomDataWithKey:

Feedback-related API has been removed.

  • shouldTakeScreenshot
  • feedbackControllerType
  • -presentFeedbackControllerFromViewController:
  • -dismissFeedbackControllerAnimated:completion:
  • -addAdditionalInfoToFeedback:withKey:
  • -removeAdditionalInfoFromFeedbackWithKey:

ATSurveys

  • Renamed +hasSurveyAvailable to +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