1

我想知道当用户退出应用程序时是否有保存最后查看的窗口的功能,所以当他们再次进入应用程序时,它会转到最后查看的页面,而不是重新启动。我查看了 Ti.App.Properties,但还没有真正找到我想要的东西。谁能指出我正确的方向,或者如果这是可能的。

谢谢

4

2 回答 2

1

Ti.App.Properties 是要走的路。

如果您只是想保存用户所在的窗口,只需在每次窗口更改时保存用户所在的当前窗口。

如果您想保存当前状态,正如您的标题所示,您还需要创建一个保存页面上所有数据的 javascript 对象,执行 JSON.stringify(object),然后将该字符串也保存在属性中。

于 2013-09-19T15:02:19.383 回答
1

有一个代码示例可用于管理最后打开的窗口的状态:

// Windows types
var TYPE_HOME = 'HomeWindow',
    TYPE_BLUE = 'BlueWindow';

// Properties' keys
var PROPERTY_LAST_OPENED_WIN = 'lastOpenedWindow';

// open the last opened window
var win = openLastWindow();

// Uncomment to open the blue window
// Then, comment and reopen the app => the blue window will be opened
//createAndOpenBlueWindow();

// Save the last window configuration
function setLastWindow(params) {
    Ti.App.Properties.setString(PROPERTY_LAST_OPENED_WIN, JSON.stringify(params));
}

// Create and open the last window opened
// (the function you have to call when you re-open the app)
function openLastWindow() {
    var params = JSON.parse(Ti.App.Properties.getString(PROPERTY_LAST_OPENED_WIN, '{}'));

    switch (params.type) {
        case TYPE_HOME: return createAndOpenHomeWindow();
        case TYPE_BLUE: return createAndOpenBlueWindow();
        default       : return createAndOpenHomeWindow();
    }
}

// Create a window with the given params AND
// save this window as last opened window
function createAndOpenWindow(params) {
    var win = Ti.UI.createWindow(params);
    setLastWindow(params);

    win.open();

    return win;
}

// Create windows of type "HomeWindow"
function createAndOpenHomeWindow() {
    return createAndOpenWindow({type:TYPE_HOME, backgroundColor:'#FF0000'});
}

// Create windows of type "BlueWindow"
function createAndOpenBlueWindow() {
    return createAndOpenWindow({type:TYPE_BLUE, backgroundColor:'#0000FF'});
}

由于openLastWindow函数,此代码创建并打开最后一个打开的窗口。

第一次打开应用程序时,将打开主页红色)。

通过取消注释这一行:

//createAndOpenBlueWIndow();

下次运行该应用程序时,您将打开BlueWindow 。

然后,重新评论这一行。蓝色窗口将被打开(因为它是最后一次打开的)。

希望这可以帮助 !

于 2013-09-19T16:42:25.457 回答