register()
A function that registers a placement that can be remotely configured to show a paywall and gate feature access.
Purpose
Registers a placement so that when it's added to a campaign on the Superwall Dashboard, it can trigger a paywall and optionally gate access to a feature.
Signature
fun Superwall.register(
placement: String,
params: Map<String, Any>? = null,
handler: PaywallPresentationHandler? = null,
feature: () -> Unit,
)
fun Superwall.register(
placement: String,
params: Map<String, Any>? = null,
handler: PaywallPresentationHandler? = null,
)
Parameters
Name | Type | Description |
---|---|---|
placement | String | The name of the placement you wish to register. |
params | Map<String, Any>? | Optional parameters to pass with your placement. These can be referenced within campaign rules. Keys beginning with $ are reserved for Superwall and will be dropped. Arrays and nested maps are currently unsupported and will be ignored. Defaults to null . |
handler | PaywallPresentationHandler? | A handler whose functions provide status updates for the paywall lifecycle. Defaults to null . |
feature | () -> Unit | A completion block representing the gated feature. It is executed based on the paywall's gating mode: called immediately for Non-Gated, called after the user subscribes or if already subscribed for Gated. |
Returns / State
This function returns Unit
. If you supply a feature
lambda, it will be executed according to the paywall's gating configuration, as described above.
Usage
func pressedWorkoutButton() {
// remotely decide if a paywall is shown and if
// navigation.startWorkout() is a paid-only feature
Superwall.shared.register(placement: "StartWorkout") {
navigation.startWorkout()
}
}
Register without feature gating:
Superwall.instance.register(
placement = "onboarding_complete",
params = mapOf("source" to "onboarding"),
handler = this
)
How is this guide?