6

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

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

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

有没有一种方法可以在 jquery mobile 中调用以完全重新启动应用程序并将所有内容设置回初始设置?

4

4 回答 4

8

对于完整的解决方案,我认为您不走运。

iOS 绝对不会允许以编程方式杀死应用程序,更不用说以编程方式启动应用程序了。

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

navigator.app.exitApp();

杀死当前的应用程序。

但是,您仍然无法以编程方式重新启动它。

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

*编辑:在我关于苹果允许应用程序杀戮的声明中没有添加,因为它应该是。

于 2013-09-13T11:09:22.690 回答
4

试试,document.location.href

document.location.href = 'index.html';
于 2013-09-13T06:56:33.793 回答
2

您是否尝试过重新加载应用程序?

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

location.reload();
于 2013-09-13T06:51:28.557 回答
0

无需重新启动应用程序,您可以检查特定页面的 pagebeforeshow 并初始化为您想要的任何值。这样每次您访问该页面时,值都会被初始化。

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

});


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

/* Intialise all your variables here*/


});
于 2013-09-13T05:23:02.593 回答