Customize pop-up alerts
What are custom activation alerts?
We want to make the iOS app installation and activation process straightforward and transparent for our users. To aim this, starting with version 3.0.0
, the iOS Setapp Framework includes default alerts that cover all possible scenarios when users must be informed of their progress. The Setapp alerts are branded according to Setapp Brand Guidelines.
Nonetheless, you might want brand alerts according to their design guide. We allow you to do this but must ensure that your custom alerts cover all the scenarios and meet our requirements.
Example of a Setapp alert:
How to implement standard Setapp alerts?
Setapp alerts are provided with our framework. You don't need to do extra actions to have them in your app. However, you must remove your old implementation of alerts if you had it.
Remove outdated alert implementation (if needed)
Before Setapp iOS Framework 3.0.0
, pop-up alerts in your apps were optional. We didn't have our alerts, and we gave you the freedom to decide whether you wanted to implement them in your app or not.
Those of you who had your own pop-up alerts before version 3.0.0, must remove the old open(…
method that called viewController(for:)
method of the shared
instance of the SetappManager
class. Otherwise, the build error appears.
Customize pop-up alerts
Please note that you must design pop-up alerts for all scenarios used in Setapp. Please see the list of alerts below.
Once all the alerts are ready, follow these steps to add them to Setapp:
- Implement a custom messages presenter by conforming
SetappMessagesPresenterProtocol
- Set it to
SetappManager.shared.setMessagesPresenter(_:)
Apply
SetappMessageOptions
When Setapp Framework requests a new alert presentation, it provides a
SetappMessageOptions
object. The object contains a set of options that the custom alert follows, for example,isDismissable
. Ensure you applied these options.
List of Setapp alerts
Alerts | Message Type | Setapp copy |
---|---|---|
Alert 1: The app is successfully activated. | .activationSuccess | Headline: “[App name] activated” Text: “[App name] is now ready to use via your Setapp subscription. Keep going and try it out.“; Button: "Got it" (close the alert). |
Alert 2: User tries to activate the already activated app | .activationSuccess | Headline: “[App name] activated” Text: “[App name] is now ready to use via your Setapp subscription. Keep going and try it out.“; Button: "Got it" (close the alert). |
Alert 3: The device limit has been reached. The alert is displayed the first time the application is activated from a specific device. | .error(.deviceLimit) | Headline: "You’ve reached your device limit." Text: "Go to your Setapp account and disconnect unnecessary devices." Primary button: “Go to My Setapp.” Secondary button: “Not now” (close the alert). |
Alert 4: Issue with scanning QR code from Setapp desktop app | .error(.expiredAuthenticationToken) | Headline: "We have a little problem." Text: "Scanning QR code failed. Please go to the Setapp app on your Mac and scan the QR code again." Button: "Got it" (close the alert). |
Alert 5: Issue with scanning QR code from Web account | .error(.expiredAuthenticationToken) | Headline: "We have a little problem". Text: "Scanning QR code failed. Please go back to your Setapp account and scan the QR code again." button: "Got it" (close the alert). |
Alert 6: Issue with transition via a web link from Web account accessed from iOS device | .error(.expiredAuthenticationToken) | Headline: "We have a little problem." Text: "App activation failed. Please go back to your Setapp account and try to activate the app again." Primary button: "Go to My Setapp" (link to Apps catalog). Secondary button: “Not now” (close the alert). |
Alert 7: Unknown issue. Generic pre-contact support. | .error(.generic) | Headline: "Something went wrong." Text: "Please try again." Button: "Ok." |
Alert 8: Unknown issue. Generic contact support. | .error(.generic) | Headline: "Something went wrong." Text: "Try again or contact our support team for help." Primary button: “Contact Support Team.” Secondary button: “Not now” (close the alert). |
Alert 9: Network error. | .error(.noInternet) | Headline: "No internet connection." Text: "Please go online and try again." Button: “Ok.” |
Alert 10: Connection timeout is reached. | .error(.timeout) | Headline: "Slow internet connection." Text: "It takes too long to load. Please check if you're still connected to the internet and try again." Button: “Ok.” |
Alert 11: Session expired. | .error(.noSession) | Headline: "There’s an issue with your subscription." Text: "Sorry for that. Please go to your account for more information." Button: “Go to your account” (use the fallback URL from the message options). |
Alert 12: Activation Prompt Setapp Mobile only | .activationPrompt | Headline: "Start using [App Name]" Text: "Activate the full version of the app via Setapp Mobile." Button: "Activate [App Name]" (use the fallback URL from the message options). |
Updated 7 days ago