diff --git a/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java b/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java index d9f53b491..1aed48817 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java +++ b/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java @@ -91,6 +91,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(); @@ -100,6 +101,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; } }