Permission priming

Your own screen explaining why you need the camera or location, shown before you spend your one shot at the OS permission dialog.

explain before the popup askspre-permission screenpre-promptsoft askpermision primingthe 'why we need your camera' screenwarm-up screen before the allow dialogasking politely before the OS asks

See it

Live demo coming soon

What it is

The OS permission dialog is a one-shot resource. On iOS you effectively get one chance to show it per permission, and once someone taps 'Don't Allow' the only way back is a trip to Settings. Permission priming spends a screen of your own first: an illustration, a sentence on what the app does with the data, and two buttons. Only the positive button triggers the real system prompt.

Reach for it whenever the permission is not obviously implied by the tap. A camera prompt right after the user hits 'Scan receipt' needs no priming. A location or notification prompt on first launch, with no context, is where accept rates fall off a cliff. Time the ask to the moment the feature becomes useful, not to app open.

Gotchas: your 'Not now' path must genuinely skip the OS call, otherwise you burned the one shot anyway. Reviewers also reject priming screens that impersonate the system dialog (same fonts, same button layout, fake 'Allow' wording), so make it look like your app. On Android the rules are looser but not a fixed count: whether another system dialog will appear depends on the Android version, your target SDK, the specific permission, and whether the OS has decided the user has effectively said 'don't ask again'. Do not keep your own denial counter. Ask the platform: check the returned permission status, and call shouldShowRequestPermissionRationale to find out whether priming is still worth showing.

Ask AI for it

Build a permission priming screen shown immediately before the OS prompt for [permission]. Context: the feature is [feature], the user benefit is [user benefit], we would send [notification types or data use], roughly [expected frequency]. Full-screen sheet: a simple illustration or icon at top, a headline naming that benefit in the user's words, one sentence of plain-language detail about what we send and how often, then two buttons: a primary action that calls the native permission request API, and a quiet text 'Not now' that dismisses without ever calling it. Do not mimic the system dialog's styling. Before showing the priming screen, read the current permission status, and on Android also check shouldShowRequestPermissionRationale, so we skip straight to a Settings deep link when no system prompt is available. Persist the dismissal so we only prime again after the user hits the related feature.

You might have meant

runtime permissionpush notification rich pushapp tracking transparency promptstore review prompt