我们正在为Cordova应用程序添加一项功能,以捕获未处理的异常并重新启动该应用程序。在这种情况下,我们希望清除浏览器的历史记录,以使用户无法在Android设备上回弹到崩溃的屏幕。
不可能以编程方式清除浏览器历史记录,但我希望有一个Cordova插件可以重新实例化整个应用程序(即删除当前的Webview并创建一个新的webview)。我却找不到类似的东西。
有没有一种好的方法可以同时在iOS和Android上使用?
答案 0 :(得分:2)
在Android中,每个WebView
实例都可以做到:
webView.clearCache(true);
webView.clearHistory();
webView.clearFormData();
对于IOS,请在此处阅读:Clearing UIWebview cache
答案 1 :(得分:1)
我建议使用cordova-plugin-cache-clear,以便处理更多Android上的Chrome。但是Activity
重新启动本身无法通过某些Cordova插件来完成(对于Exception
,甚至无法通过Activity.recreate()
来完成),但这需要一个辅助工具Service
,它会收到通知(当然,必须处理这些异常,但未处理的异常仍然会崩溃),然后相应地处理情况。找出可能的崩溃原因可能更有意义-首先不要浪费时间为未正确伪造的代码创建可疑的解决方法。此外,如果这是JavaScript的bug,那么可能根本无法解决这些问题,而只能解决这些问题。