2 min read
Launch Pages
Available from v25The Launch Pages feature is a v25 dynamic feature, set up via the appmanager, that replaces the previous static Onboarding and Force Update implementations.
On launch, or when switching to a different environment, the app calls /launch
to retrieve content to show and optionally block the app.
Deeplinks
Launch pages can be previewed via the AppManager QR code when setting up your app.
Set up
Launch pages is built into the SDK and used by all apps.
A developer must set the forceUpdateUrl
in the AppConfig.json
:
"forceUpdateUrl": "itms-apps://itunes.apple.com/app/id{appstore-id}?mt=8"
Content
Launch pages present content based on the following logic:
- If the app is lower than the minimum force update version the app presents the Force Update page.
- If maintenance mode is active the app presents the Maintenance Mode page.
- If onboarding content is set up and the user has not seen it previously (first launch) the app presents the Onboarding pages.
Force Update
From v25 onwards set a minimum version in AppManager to present the Force Update page on versions lower than that minimum requirement. Force update blocks the user from using the rest of the app.
Older platform versions must still use MightyBot to enable force update by setting the forceUpdate
config setting to true
.
Prior to v25 it was very important to increment your app's API version and create a matching new MightyBot version for every release for force update.
Maintenance Mode
From v25 onwards enable or schedule maintenance mode in AppManager to present the maintenance page. Maintenance mode blocks the user from using the rest of the app.
Onboarding
Prior to v25 Onboarding used to be a compile time feature that required json downloaded from the AppManager to be released with the app. From v25 onwards Onboarding has been completely rewritten to a dynamic solution using the same UI as the other launch pages.
Architecture
Launch pages reuse the same UI for the above defined different content modes.
Templates
Pages can be presented based on a supported template type:
- TopImage: The image is presented above the title and content.
- Background: The image is the background behind the title and content.
Behaviors
Pages now have behavior slots using the new ViewSlot
mechanism to resolve different page behaviors.
Page BehaviorView
implementations are often widgets, managing their own state, to independently perform their own actions.
If they conform to DispatchingStoreView
they can delegate actions back to the LaunchPages screen allowing them to move to the next page or dismiss (complete or skip) the pages.
The following behaviors are supported as of v25:
- Link: A generic link button that should be presented modally.
- Account: The login gate page to encourage users to log in before using the app.
- Push: The notification permissions opt-in page to reach new users.
- Location: The location permissions opt-in page (important if the app uses In-Store mode).
- Get Started: A page to present a button that completes the content.
New behaviors can be injected then mapped using a custom LaunchPagesTemplateViewDataMapper
by mapping the behaviorViewSource
.
History
- v25: Initial release replacing compile-time Onboarding.