【问题标题】:Cordova: restart app and clear browser historyCordova:重新启动应用程序并清除浏览器历史记录
【发布时间】:2018-08-15 11:50:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: android ios cordova restart


    【解决方案1】:

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

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

    IOS请看这里:Clearing UIWebview cache

    【讨论】:

    • 除非我遗漏了什么,否则这不会在 iOS 上工作,因为它不会清除后退/前进缓存(又名历史记录)。
    • 我接受这个答案,因为它是唯一解决浏览器历史记录的答案。不幸的是,似乎没有一种简单的方法来清除 iOS 上的历史记录,但这对于我们的用例来说并不是必需的,因为无论如何 iOS 上都没有硬件后退按钮。
    【解决方案2】:

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

    【讨论】:

    • 这将是完美的,但它不会删除后退/前进历史记录。据我所知,UIWebView 无法做到这一点。您只需要创建一个新视图,我看不到在 Cordova 应用程序中创建主 Web 视图的好方法。
    • Android WebView stackoverflow.com/questions/8103532/… & iOS WKWebView stackoverflow.com/questions/46086691/… ...编写这样的 Cordova 插件很简单。我什至不明白您为什么要删除 WebView... 的历史记录以及您所说的“崩溃”... JavaScript 或 Cordova (WK) WebView 是什么意思? UIWebView 甚至已被弃用。
    • 我的理解是Cordova仍然使用UIWebView(至少目前是这样)。具体来说,我们正在捕获未处理的 JavaScript 异常并显示“失败鲸鱼”屏幕。我们不希望 Android 用户能够使用硬件返回按钮从那里返回。所以实际上我们在 iOS 上并不需要担心这一点,因为在 Cordova 应用程序中无论如何都无法返回。
    • @MatthewGertner 您应该使用JasmineKarma 进行测试...因为崩溃的应用程序通常很糟糕(并且用户保留率往往很低),无论人们如何努力隐藏那...我已经编写了 JS 应用程序 > 1MB 代码(手动测试变得不可能)。使用 Cordova,还可以使用 Chrome 调试桥,以便直接在硬件设备上进行调试。它是chrome://inspect ...crash 报告类似Crashlytics 会更有意义(人们还可以看到,安装数量并不意味着保留)......甚至可能会因 JS 错误而触发它(...... )
    • 我们有非常少的未处理的 JS 异常,但你无法在测试期间捕获所有的异常。我们宁愿出现一个错误页面并重新加载应用程序,而不是让它简单地冻结(这是目前发生的情况)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多