Android: How to disable permission popup from webview and show a native permission dialog

24 Views Asked by At

enter image description here

I am using webview in my application for KYC process. To open camera for uploading documents Webview shows a permission dialog to allow access to camera as shown in attached screen shot. My goal is to hide this popup and show a native permission dialog instead.

Below are the settings applied to webview.

private fun setupWebView() {
        binding.webView.webViewClient = WebViewClient()
        binding.webView.settings.javaScriptEnabled = true
        binding.webView.settings.mediaPlaybackRequiresUserGesture = false
        binding.webView.settings.allowContentAccess = true
        binding.webView.settings.domStorageEnabled = true
        binding.webView.settings.setSupportZoom(true)

        /** Ask for camera permission from WebView **/
        binding.webView.webChromeClient = object : WebChromeClient() {
            override fun onPermissionRequest(request: PermissionRequest) {
                request.grant(request.resources)
            }
        }

        /** Add Javascript Event Listener **/
        webBridge = AndroidBridge(this)
        binding.webView.addJavascriptInterface(webBridge!!, "AndroidBridge")
        binding.webView.webViewClient = object : WebViewClient() {
            override fun onPageFinished(view: WebView, weburl: String) {
                binding.webView.evaluateJavascript(
                    """
              window.addEventListener('message', function(event) {
              console.log(event);
              AndroidBridge.onEventFromJavaScript(JSON.stringify(event.data));
               });
            """.trimIndent(), null
                )
            }
        }
    }
}
0

There are 0 best solutions below