Skip to main content

InAppStory class

The main singleton class for managing data and customizing the display of lists and the reader.

Initialization​

Library Initialization is preferably carried out in AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
{
InAppStory.shared.initWith(serviceKey: <String>, testKey: <String>, settings: <Settings?>)
return true
}
  • serviceKey - service authorization key <String>;
  • testKey - test authorization key in the service <String>;
  • settings - configuration object (<Settings> - optional).

Attention!
If you pass testKey, then the library will display the stories only in the "Moderation" status.

Methods​

  • setTags(<Array<String>>) - replacing all tags;
  • addTags(<Array<String>>) - adding tags;
  • removeTags(<Array<String>>) - remove tags;
  • getWidgetStories(complete: (Array<WidgetStory>?) -> Void) - getting a list of stories for a widget;
  • showOnboardings(from target: <UIViewController>, delegate: <InAppStoryDelegate>, complete: @escaping (_ show: Boll) -> Void) -> CancellationToken? - show onboarding reader, also see <InAppStoryDelegate>
  • showStory(with id: <String>, from target: <UIViewController>, with panelSettings: <PanelSettings>? = nil, complete: @escaping (_ show: Bool) -> Void) -> CancellationToken? - show single reader, also see <InAppStoryDelegate>
  • showStoryOnce(with id: <String>, from target: <UIViewController>, with panelSettings: <PanelSettings>? = nil, complete: @escaping (_ show: Bool) -> Void) -> CancellationToken? - show single reader with once story, also see <InAppStoryDelegate>-
  • present(controller presentingViewController: <UIViewController>, for presentationStyle: <UIModalPresentationStyle> = .overCurrentContext, with transitionStyle: <UIModalTransitionStyle> = .coverVertical) - serves for display of a custom controller over a story reader;
  • closeReader(complete: () -> Void) - closing any story reader that showinng with a closure, complete is called after the reader is closed;
  • clearCache - clear all cache of library;
  • removeFromFavorite(with storyID: <String>) - remove story from favorites;
  • removeAllFavorites() - remove all favorites stories;
  • preloadGames() - starts preloading games in the background, for faster launch later on;
  • showStoryWithTargeting(with:from:with:tags:complete:) - since 1.29.9, requests a single story by ID with targeting; parameters and defaults. Existing showStory calls remain unchanged;
  • showInAppMessageWithTargeting(id:targetView:onlyPreloaded:tags:completion:) - since 1.29.9, requests an IAM by ID with targeting; parameters and defaults. Existing show-by-ID calls remain unchanged;

Parameters and properties​

  • isReaderOpen - show that reader is open on screen or not nil in InAppStory.shared
  • favoritesCount - the number of favorite stories a user has;
  • isLoggingEnabled - displaying requests to the server in the console;
  • isEditorShowing - is editor current displaying; (InAppStoryUGC)
  • placeholders - personalization substitution list Dictionary<String, String\>;
  • imagesPlaceholders - images personalization substitution list Dictionary<String, String\>;
  • widgetStories - data for iOS widget;
  • sslPinningHashKeys - hashs of public keys for SSL-Pinning Array<String>?;
  • appVersion - is used to set the custom version of the application where InAppStorySDK is integrated;
  • appBuild - used to set the custom build version of the application where InAppStorySDK is integrated;
  • inputPresenter: InputPresenter? - since 1.29.9, a custom input interface for IAM, banners, and games. Default nil uses the SDK dialog; details;
  • placeholderIAMView: PlaceholderProtocol? and placeholderBannerView: PlaceholderProtocol? - since 1.29.9, separate IAM and carousel loading indicators. Both default to nil and fall back to the existing placeholderView; details;

Customization​

Customization of the appearance of the cells and the reader occurs through the singleton of the class InAppStory.shared:

Goods widget​

Look here for Goods Widget appearance parameters.

List​

Look here for List appearance parameters.

Reader​

  • swipeToClose - closing the reader by swipe <Bool>;
  • overScrollToClose - closing the reader when scrolling through the last story <Bool>;
  • muted - mute/unmute the sound in the story <Bool>; (Details)
  • panelSettings - displays the bottom bar (should be enabled in the console) <PanelSettings>; Details

To learn about reader appearance parameters look here