2

我正在将恢复事件附加到应用程序,并且我想检测当前聚焦的窗口

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

7 回答 7

7

您可以尝试 Ti.UI.currentWindow - 但过去我的结果好坏参半。

最基本的选项是在你的 app.js 中创建一个全局变量来存储窗口,所以继续,只需检查一下。您可能想要为窗口制作一个包装器,因此在 open() 上您使用窗口设置全局。

于 2012-10-17T01:31:41.717 回答
1

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

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

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

于 2010-10-22T08:45:32.700 回答
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();

希望这会有所帮助。

于 2013-03-04T07:40:28.450 回答
0

试试这个代码

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

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

在你想触发这个事件的地方做这个

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

这样您就可以将自定义数据发送到全局事件

于 2014-11-04T14:26:26.747 回答
0

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

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

于 2016-03-25T14:20:58.260 回答
-1

焦点窗口是最后打开的!

于 2014-09-11T07:04:08.923 回答
-1

您可以使用

var currentWindow = Ti.UI.getCurrentWindow();

于 2012-10-23T09:47:15.417 回答