From fd9ceb1ae628772dc101ccd3e049139b43b5da56 Mon Sep 17 00:00:00 2001 From: sherwinski Date: Tue, 5 Aug 2025 16:37:13 -0700 Subject: [PATCH] fix(webview): force IAM render on android 5 and 6 --- .../internal/display/impl/WebViewManager.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/display/impl/WebViewManager.kt b/OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/display/impl/WebViewManager.kt index e2054ac49d..9203a9cc9e 100644 --- a/OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/display/impl/WebViewManager.kt +++ b/OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/display/impl/WebViewManager.kt @@ -314,6 +314,22 @@ internal class WebViewManager( // Setup receiver for page events / data from JS webView!!.addJavascriptInterface(OSJavaScriptInterface(), JS_OBJ_NAME) + + webView!!.webViewClient = object : android.webkit.WebViewClient() { + override fun onPageFinished(view: android.webkit.WebView?, url: String?) { + android.os.Handler(android.os.Looper.getMainLooper()).postDelayed({ + val mockRenderingComplete = """{"type":"rendering_complete"}""" + try { + val jsInterface = OSJavaScriptInterface() + jsInterface.postMessage(mockRenderingComplete) + } catch (e: Exception) { + Logging.error("Issue when forcing rendering_complete: ", e) + } + }, 3000) + + super.onPageFinished(view, url) + } + } if (isFullScreen) { webView!!.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_IMMERSIVE or