Cordova:重启应用程序并清除浏览器历史记录

Cordova: restart app and clear browser history

我们正在向 Cordova 应用程序添加一项功能,以捕获未处理的异常并重新启动应用程序。我们希望在这种情况下清除浏览器历史记录,以便用户无法在 Android 设备上返回到崩溃的屏幕。

不可能以编程方式清除浏览器历史记录,但我希望有一个 Cordova 插件可以重新实例化整个应用程序(即删除当前的 webview 并创建一个新的)。不过我找不到这样的东西。

有没有一种同时适用于 iOS 和 Android 的好方法?

在 Android 中,对于每个 WebView 实例,您可以执行以下操作:

webView.clearCache(true);
webView.clearHistory();
webView.clearFormData();

对于IOS,请阅读此处:Clearing UIWebview cache

我宁愿建议 cordova-plugin-cache-clear,以便在 Android 上处理的不仅仅是 Chrome。但是 Activity 重启本身无法通过某些 Cordova 插件完成(在 Exception 的情况下,甚至 Activity.recreate() 也无法完成),但它需要一个助手 Service ,得到通知(当然这些必须处理异常,未处理的异常仍然会崩溃)然后相应地处理这种情况。消除可能的崩溃原因可能更有意义 - 而不是首先浪费时间为未正确伪造的代码创建有问题的解决方法。此外,如果这是 JavaScript 错误,可能根本没有办法解决这些问题,只能修复它们。