【问题标题】:Force full app restart in order to refresh packages in Cordova强制重新启动完整的应用程序以刷新 Cordova 中的包
【发布时间】:2019-02-14 22:18:17
【问题描述】:

我希望完全从应用程序本身重新启动应用程序(真正重新启动应用程序(完全加载),而不仅仅是重新呈现索引)。

这需要发生,因为某些包还需要重新初始化,而这只能在完全重新启动应用程序时完成。

我试过这个包https://www.npmjs.com/package/cordova-plugin-exit 似乎不起作用。

navigator.app.exitapp() 也不是我想要的,或者这正是我想要它做的?

是创建一个cordova wrapper 插件的最佳解决方案吗?

【问题讨论】:

    标签: android ios cordova meteor cordova-plugins


    【解决方案1】:

    您可以在 Android 上使用cordova-diagnostic-pluginrestart() 方法执行此操作:

    // Warm restart
    cordova.plugins.diagnostic.restart(null, false);
    
    // Cold restart
    cordova.plugins.diagnostic.restart(null, true);
    

    默认情况下,将执行“热”重启,其中立即重启主 Cordova 活动,从而重新创建 Webview 实例。

    但是,如果cold parameter 设置为true,则应用程序将“冷”重启,这意味着将执行系统退出,导致整个应用程序重新启动。如果您想完全重置本机应用程序状态但会导致应用程序短暂消失并重新出现,这很有用。

    注意:没有successCallback(),因为如果操作成功,应用程序将立即重新启动,然后才能应用任何成功回调。

    无法在 iOS 上以编程方式重启应用;至少这样做可能会让您的应用被 App Store 拒绝。

    【讨论】:

    • 戴夫你是我的英雄!它工作得很好。你无法想象我在这方面花了多少时间以及我尝试了多少解决方案。在某些时候,我什至尝试创建一个可以杀死并重新启动应用程序的 cordova 插件。没有任何效果。在 document.location = "index.html" 或 location.reload(); 之后插件无法正常工作或 navigator.app.loadUrl 或类似的。
    猜你喜欢
    • 2010-09-16
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 2015-08-24
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多