jQuery Mobile以编程方式重新初始化/重新启动应用程序

时间:2013-09-09 22:16:21

标签: jquery-mobile cordova

我正在使用phonegap和jquery mobile编写应用程序。

为了处理未知错误,我需要完全重启我的应用程序,并将所有变量和动态内容重新初始化为相当于第一次运行。

最初我只是使用$ .mobile.changePage($'#home'),这显然不起作用,因为它没有重新初始化任何动态内容或变量,所以我最终得到了双倍的打击。

我可以在jquery mobile中调用一个方法来完全重启应用程序并将所有内容设置回初始设置吗?

4 个答案:

答案 0 :(得分:8)

对于完整的解决方案,我认为你运气不好。

iOS肯定会*不允许以编程方式杀死应用程序,更不用说编程的启动了。

Android确实允许杀死应用。虽然没有记录(我可以找到),但您可以使用

  

navigator.app.exitApp();

杀死当前的应用。

然而,你仍然无法以编程方式重新启动它。

我认为最好的办法是编写代码来重置变量和本地存储/数据库(如果使用的话)。然后通过document.location.href = 'index.html?var=xxx';重新加载索引页面,其中xxx =当前时间戳。将时间戳放在最后将确保它提取页面的非缓存版本。

*编辑:在我关于Apple的声明中添加了而不是,允许应用程序被杀,因为它应该是。

答案 1 :(得分:4)

尝试,document.location.href

document.location.href = 'index.html';

答案 2 :(得分:2)

您是否尝试过reload应用?

  

reload()方法用于重新加载当前文档   reload()方法与浏览器中的重新加载按钮相同   默认情况下,reload()方法从缓存重新加载,但您可以通过将forceGet参数设置为true来强制重新加载从服务器获取页面。

location.reload();

答案 3 :(得分:0)

您可以检查特定页面的pagebeforeshow并初始化您想要的值,而不是重新启动应用程序。这样每次访问该页面时,值都将被初始化。

$.mobile.changePage( "#PageID", {
     reverse: false,
    changeHash: false

});


$(document).on('pagebeforeshow','#PageID',function(){

/* Intialise all your variables here*/


});