Как получить текущее окно в Titanium Mobile? - PullRequest
2 голосов
/ 04 октября 2010

Я присоединяю событие возобновления к приложению и хочу определить, какое окно в данный момент сфокусировано

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

Ответы [ 7 ]

7 голосов
/ 17 октября 2012

Вы можете попробовать Ti.UI.currentWindow - но у меня были смешанные результаты с ним в прошлом.

Самый простой вариант - создать глобальный var в вашем app.js для хранения окна, поэтому при возобновлении просто проверьте это. Возможно, вам захочется создать оболочку для окон, чтобы при open () вы устанавливали глобальный тип с помощью окна.

1 голос
/ 04 марта 2013

Пишите этот код в каждом событии фокуса окна

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();

Надеюсь, это поможет.

1 голос
/ 22 октября 2010

просто установите флаг для каждого события фокуса окна, как

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

, поэтому вам нужно только запросить этот флаг ..

0 голосов
/ 25 марта 2016

Свойство «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 возвращает нуль

Единственный способ сохранить указатель на текущее окно - это присвоить его при создании глобальной переменной в коллекции Alloy.Globals, но это сложный способ, если вы используете несколько окон и слишком много способов навигации через эти окна, так что имейте это в виду.

0 голосов
/ 04 ноября 2014

попробуйте этот код

сначала вы установите глобальное событие.и обработайте его, чтобы получить windowTitle

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

, и в том месте, где вы хотите запустить это событие, сделайте это

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

, чтобы вы могли отправлять пользовательские данные в глобальное событие

0 голосов
/ 11 сентября 2014

Фокусированное окно - последнее открытое!

0 голосов
/ 23 октября 2012

Вы можете использовать

var currentWindow = Ti.UI.getCurrentWindow ();

...