Purchasely
4.4
4.4
  • Welcome page
  • General
    • Presentation
    • Release notes
  • Quick start
    • Console Configuration
    • SDK Implementation
    • Testing
    • Sample
  • Basic configuration
    • Console Configuration
      • Creating a new application
      • Creating your Products
        • App Store
        • Play Store
        • Huawei App Gallery
        • Amazon App Store
        • Products & Plans
      • Design your Paywalls
      • Design your Paywalls-Latest
        • Carousel
        • Carousel Flow
        • Features List
        • Features List & Plan Picker with 2 & 3 columns
        • Feature list overlay
        • Plan picker horizontal
        • Plan picker with 2 and 3 Column
    • SDK installation
      • iOS SDK
      • Android SDK
      • React Native SDK
      • Cordova SDK
      • Flutter SDK
      • Unity SDK
    • SDK configurations
      • Paywall observer mode
      • Full mode
      • StoreKit 2
      • Appendices
        • Start the SDK
        • Set User Id
        • Notify when the app is ready
        • Present paywalls
        • Unlock content / service
        • Close SDK (Android only)
    • Stripe
    • Purchasely with RevenueCat
  • S2S notifications
    • Server-to-server notifications ?
    • Apple App Store
    • Google Play Store
    • Huawei App Gallery
  • Analytics
    • Dashboards
      • Introduction
      • Live
      • Subscriptions
      • Cohorts
      • Trials
      • Events
    • Events
      • Webhook events
        • Subscription events
        • Subscription events attributes
      • SDK events
        • UI events
        • UI attributes
  • Integrations
    • Webhook
      • Receiving and understanding messages
      • Managing entitlements
      • Detailed sequence diagrams
    • Airship
    • Amplitude
    • AppsFlyer
    • Adjust
    • Piano analytics(ex AT Internet)
    • Batch
    • Branch
    • Braze
    • Clevertap
    • Customer.io
    • Firebase
    • Iterable
    • Mixpanel
    • MoEngage
    • OneSignal
    • Segment
    • Brevo(ex Sendinblue)
  • Advanced Features
    • Asynchronous paywalls
    • NEW: Promotional offers
    • Anonymous user
    • Associating content
    • Audiences
    • Customising UI
      • Errors & alerts
      • Controllers (iOS) / Fragments (Android)
    • Deeplinks automations
    • Disable placements
    • Displaying users subscriptions
    • Localization
    • Lottie animations
    • Non-subscription products
    • Paywall action interceptor
    • Promoting your products
      • Self-promotion
      • Promoting In-App Purchases
    • Purchase manually
    • Subscription status
    • Use your own paywall
  • Others
    • Frequently Asked Questions
    • Migration guides
      • Migrate to Purchasely
      • Webhook
        • Migrate to Webhook v3.0
      • SDK
        • Migrate to SDK v3.0
          • v2.2.0
          • v2.1.3
        • Migrate to SDK v3.1
        • Migrate to SDK v3.2
        • Migrate to SDK v4.0.0
  • TESTING
    • Testing Cycle Durations
Powered by GitBook

© Purchasely 2020-2023

On this page

Was this helpful?

Edit on GitHub
  1. Advanced Features
  2. Customising UI

Errors & alerts

Some information messages are displayed to the user during the purchase life cycle like:

  • Purchase completed

  • Restoration completed

Many errors can occure during the purchase process and are embedded in these messages liek:

  • Network error

  • Product not found

  • Purchase impossible (or canceled)

  • Restoration incomplete

  • And some more listed in PLYError object and translated in the supported languages of the SDK.

All these alerts are listed in PLYAlertMessage enum.

The SDK displays these alerts using a standard UIAlertController (iOS) / AlertDialog (Android) message with a single Ok button to dismiss.

If you wish a more customised way to display error messages, a way that reflects more your app, you can override the default behaviour by setting yourself as the delegate (PLYUIDelegate on iOS) or listner (UIListener on Android) you will then be responsible for displaying the messages yourself.

That way you could also override the behaviour and trigger some specific actions when the user taps on the button for example.

Purchasely.setUIDelegate(self)

func display(alert: PLYAlertMessage, error: Error?) {
	let alertTitle = alert.title
	let alertContent = alert.content ?? error?.localizedDescription
	let alertButtin = alert.buttonTitle

	// Display your modal
}
[Purchasely setUIDelegate:self];

- (void)displayWithAlert:(enum PLYAlertMessage)alert error:(NSError *)error {
	// Display your modal
}
Purchasely.uiListener = object: UIListener {
    override fun onAlert(alert: PLYAlertMessage) {
					when(alert) {
	    				PLYAlertMessage.InAppSuccess -> displaySuccessDialog(alert)
	    				PLYAlertMessage.InAppSuccessUnauthentified -> displaySuccessDialog(alert)
	    				is PLYAlertMessage.InAppError -> displayErrorDialog(alert)
					}
    }
}
Purchasely.setUiListener(new UIListener() {
    @Override
    public void onAlert(@NotNull PLYAlertMessage alert) {
	    if(alert instanceof PLYAlertMessage.InAppSuccess) {
	     //TODO display success view
	    }
    }
});
PreviousCustomising UINextControllers (iOS) / Fragments (Android)

Last updated 1 year ago

Was this helpful?