Controllers (iOS) / Fragments (Android)

The SDK can pop controllers above your UI like product presentation pages (see Promoting In-App Purchases) or the subscription lists or any deeplink triggered by a push service.

Of course we will wait for you to tell us when we are free to cover your content by calling isReadyToPurchase (more details) but you might want to take control on the controller animation, position… It can be a side bar with the offer on tablets or toaster messages for the error messages.

You can override the default behaviors and implement yours by using the PLYUIDelegate.

Swift
Objective-C
Kotlin
Java
Swift
Purchasely.setUIDelegate(self)
Objective-C
[Purchasely setUIDelegate:self];
Kotlin
Purchasely.uiListener = this
Java
Purchasely.setUiListener(this);

To change the transition, size, position … of a presented controller (PLYUIControllerType gives you the type of controller displayed):

Swift
Objective-C
Kotlin
Java
Swift
func display(controller: UIViewController, type: PLYUIControllerType) {
// Present the controller your way
}
Objective-C
- (void)displayWithController:(UIViewController *)controller type:(enum PLYUIControllerType)type {
// Present the controller your way
}
Kotlin
override fun onAlert(alert: PLYAlertMessage) {
//TODO display alert dialog, see "Errors & alerts" page
}
override fun onFragment(fragment: Fragment, type: PLYUIFragmentType) {
//TODO display fragment as you wish in your activity
//type can be PRODUCT_PAGE, SUBSCRIPTION_LIST or CANCELLATION_PAGE
}
Java
@Override
public void onAlert(@NotNull PLYAlertMessage alert) {
//TODO display alert dialog, see "Errors & alerts" page
}
@Override
public void onFragment(@NotNull Fragment fragment, @NotNull PLYUIFragmentType type) {
//TODO display fragment as you wish in your activity
//type can be PRODUCT_PAGE, SUBSCRIPTION_LIST or CANCELLATION_PAGE
}

Android only : We advise you to call Purchasely.setUiListener(null)when done to remove all references to your activity if you are not using WeakReference