如何在Titanium Mobile中获得当前关注的窗口?

时间:2010-10-04 16:17:18

标签: titanium

我正在将简历事件附加到应用程序,我想检测当前关注的窗口

Ti.App.addEventListener('resume', function(e) {
  // what window is focused? visible?
});

7 个答案:

答案 0 :(得分:7)

你可以试试Ti.UI.currentWindow - 但我过去的结果却很复杂。

最基本的选择是在你的app.js中创建一个全局var来存储窗口,所以在恢复时,只需检查一下。你可能想要为windows做一个包装器,所以在open()你用窗口设置你的全局。

答案 1 :(得分:1)

只需在每个窗口焦点事件上设置一个标记,如

Ti.App.Properties.setString('currentWindow',Ti.UI.currentWindow.title);

所以你只需要请求这个标志..

答案 2 :(得分:1)

在每个窗口焦点事件中编写此代码

Ti.App.Properties.setString('currentWindow',Ti.UI.currentWindow.title);

Ti.UI.currentWindow.title应该基本上是创建该窗口的文件的名称。

现在只需要在简历活动中执行此操作

var newwin_name= Ti.App.Properties.getString('currentWindow');
var newwin = Ti.UI.createWindow({url:newwin_name+'.js'});
newwin.open();

希望这会有所帮助。

答案 3 :(得分:0)

试试这段代码

首先,您将设置全局事件。并处理它以接收windowTitle

Ti.App.addEventListener('resume', function(e) {
  alert(e.windowTitle)
});

并且在您想要触发此事件的地方进行此

Ti.App.fireEvent('resume',{
windowTitle : Ti.UI.currentWindow.title
});

因此您可以将自定义数据发送到全局事件

答案 4 :(得分:0)

属性' Ti.UI.currentWindow'仅当您使用Ti.UI.createWindow.url方法在上下文中加载javascript时才可用。然而,该方法从版本3.6.0以及合金(http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Window-property-url) - >的引入被删除。 然后Ti.UI.getCurrentWindow返回null

我能够在当前窗口上保留指针的唯一方法是在创建时将它分配给Alloy.Globals集合上的全局变量,如果您使用多个Windows并且导航方式太多,那么这是一个棘手的方法通过那些窗户,所以记住这一点。

答案 5 :(得分:-1)

您可以使用

var currentWindow = Ti.UI.getCurrentWindow();

答案 6 :(得分:-1)

焦点窗口是最后一次打开的!