Granify Mobile SDK 2.0.0
New features
- Concept preview
Granify.showConcept(...)
added to request that the SDK presents a specified Granify concept. See method documentation for additional details.
Breaking changes
- Two new required callbacks have been added to
GranifyConfiguration.init(...)
. These callbacks are triggered by various CTA inputs within concepts that require a greater degree of coordination between SDK and app.productLinkBuilder
:GranifyConfiguration.ProductLinkBuilderCallback
is required for building deep links into the app for a specified product. This supplements the existingdeepLinks
list, which is for unique page types, such ashome
andcart
.currentProductCarter
:GranifyConfiguration.CurrentProductCarterCallback
is used to request the app to add the product that it is currently being shown to the user, to the user’s cart.
- A page’s main scroll view is required, when present, to be sent to
Granify.trackPageView(...)
. It is important to keep Granify notified about the current page and the shopper’s navigation through the app so our engine can make appropriate decisions about what messages should be shown to which shoppers for maximum impact. This includes tracking what the user is currently viewing on the page via the use of scroll distance metrics which are inferred from the main UIScrollView for the page.
Other changes
- New
SDKActivationError
type,SDKActivationError.configurationLoadFailed
, added for cases whenGranify.activateGranify(...)
runs into problems loading remote configuration information. - Made public some additional properties and methods
DeepLink.link
DeepLink.pageType
StringOrIntWrapper.init(stringValue:)
StringOrIntWrapper.init(intValue:)
Internal use, but public, changes
WishListItem
now implementsEncodable
and gainsWishListItem.encode(to:)
method