2017-08-18 117 views
0

打开一个新窗口的正确方法我在Appcelerator的钛,这是因为Ti.Ui.Window的“URL”属性已被删除,我不是从SDK 3.2版移植取得了相当大的应用程序,我的应用程序广泛使用。不幸的是,我一直无法找到新的,正确的方法来做到这一点。我找到了存在的信息不只是点到去除url属性,或者建议我应该搬到合金(这在目前是不可行的,我因为它需要的应用程序的完全重写)。任何人都可以指出我应该做的正确方法吗?在Appcelerator的钛

回答

0

如果你不使用合金,那么它真的是一个两步的过程。首先你需要获得窗口的句柄。通常通过Ti.UI.createWindow来完成(见http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI-method-createWindow)。既然你有一个参考窗口,你只需打开它。所以,

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

窗口对象的文档在这里。 http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Window

如果你有其他的js文件中定义的窗口。即。 myWindow.js,那么你可以使用require来获得js窗口。让窗口中的代码返回一个“Window”对象,然后打开它。

即。 myWindow.js

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

然后,请勿使用网址,要求窗口:

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

您可以看到有关呼叫信息需要在这里:http://docs.appcelerator.com/platform/latest/#!/api/Global-method-require

希望帮助。

+0

我一直在尝试用类似这样的东西,但我不知道这是否是最好的做法。我把我的第二窗口代码放在CommonJS模块中。我需要()模块,并从中调用一个导出的函数。导出的函数创建窗口并处理其所有逻辑。这样做有缺点吗? – tutiplain

+0

这真的是一回事。所以没关系。当你得到一个机会和一个新项目时,重要的事情就是变成合金。项目更容易和更易于维护。 – Ray