在 Appcelerator Titanium 中打开新 window 的正确方法

Correct way to open a new window in Appcelerator Titanium

我有一个用 Appcelerator Titanium 制作的相当大的应用程序,我没有从 SDK 版本 3.2 移植它,因为 Ti.Ui.Window 的 "url" 属性 已被删除,我的应用程序广泛使用它。不幸的是,我没能找到新的、正确的方法来做到这一点。我在那里找到的信息只指向删除 url 属性,或者建议我应该移动到 Alloy(目前这对我来说是不可行的它需要完全重写应用程序)。任何人都可以指出应该如何正确完成此操作的示例吗?

如果您不使用 Alloy,那么这实际上是一个两步过程。首先,您需要获取 window 的句柄。这通常用 Ti.UI.createWindow 来完成(参见 http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI-method-createWindow)。现在您已经有了对 window 的引用,只需打开它即可。所以,

var win = Ti.UI.createWindow({title: 'My first window'});
win.open();

关于 window 对象的文档在此处。 http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Window

如果你在其他js文件中定义了windows。 IE。 myWindow.js,那么就可以使用require获取js window。将代码放入 window return 一个 "Window" 对象中,然后打开它。

即。 myWindow.js

var win = Ti.UI.createWindow({title: 'Window from another file'});
return win;

然后在你的调用文件中,不要使用url,需要window:

var myNewWindow = require('myWindow');
myNewWindow.open();

您可以在此处查看有关调用 require 的信息:http://docs.appcelerator.com/platform/latest/#!/api/Global-method-require

希望对您有所帮助。