From f0d274c88d4c9e82a1951b3f77d7ead27d0e1a91 Mon Sep 17 00:00:00 2001 From: Merbin Joe Date: Wed, 23 Apr 2025 21:39:55 +0530 Subject: [PATCH] The app is crashed, if any low memory issue occured If any crash occurred due toa low memory issue, we just prevent the app from crashing and reload the webview. To test this issue please execute the following code ``` ``` --- .../java/com/getcapacitor/BridgeWebViewClient.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java b/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java index c434247a2..24149aac1 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java +++ b/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java @@ -97,6 +97,7 @@ public void onReceivedHttpError(WebView view, WebResourceRequest request, WebRes @Override public boolean onRenderProcessGone(WebView view, RenderProcessGoneDetail detail) { super.onRenderProcessGone(view, detail); + boolean result = false; List webViewListeners = bridge.getWebViewListeners(); @@ -106,6 +107,18 @@ public boolean onRenderProcessGone(WebView view, RenderProcessGoneDetail detail) } } + if (!result) { + // If no one handled it, handle it ourselves! + + view.post(() -> { + Toast.makeText(view.getContext(), "Reloading due to low memory issue", Toast.LENGTH_SHORT).show(); + }); + + view.reload(); // Safely reload WebView + + return true; + } + return result; } }