Follow

Why does iOS keep asking for camera permissions?

Please jump to the right section for your issue

On Safari with iOS > 13

You need to open your website and then tap the "AA" icon in the bottom-left. Then tap "Website Settings" which will enable you to set camera permissions to "Allow" instead of "Ask".

This will set the camera permissions to allow by default, so it won't ask for permissions again.

IMG_0002.PNG

On Safari with iOS < 13

iOS has a somewhat heavy-handed implementation of user permissions for camera access in the Safari browser.  The permissions are not persistent and are re-requested with every page load.

If you have a single-page app, you should expect to grant camera access once per application load. 

However, if you're loading the page each time you need to scan, you will see the camera permission dialog.  Whenever possible, we recommend implementing your workflow without reloading the page.

On PWAs

Unfortunately, PWAs are revoking camera access privileges whenever the hash changes. If you would like to add your voice for this issue to be solved, you can post it on this ticket.

 

On WKWebView

With the release of iOS 15, Apple introduced the ability to request media capture permission directly from the WKWebView. This provides more control over how and when the user is prompted for camera and microphone access.

 

To implement this feature, we will first need to implement the WKUIDelegate method To your ViewController. This method is called when the WKWebView encounters a request for camera or microphone access from a website.

Here’s how it looks:

    @available(iOS 15, *)
    func webView(
        _ webView: WKWebView,
        requestMediaCapturePermissionFor origin: WKSecurityOrigin,
        initiatedByFrame frame: WKFrameInfo,
        type: WKMediaCaptureType,
        decisionHandler: @escaping (WKPermissionDecision) -> Void
    ) {
        decisionHandler(.grant)
    }

You also need to add the WKUIDelegate to your ViewController and set webView.uiDelegate = self and your done.

 

No more permission request from the WebView. 

 

A good thing to note though is that this will allow permissions from all sites, you should probably limit it to use only the url’s you want.

 

On other browsers

Unfortunately, saving camera access permission is currently not supported by Apple on other browsers than Safari. 

 

 

 

Was this article helpful?
3 out of 3 found this helpful
Have more questions? Submit a request