Функция вызова Appcelerator каждый раз при открытии окна

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

$.win.addEventListener("focus", function(e){
    alert("window appear");
});

Это не звонит. Итак, я попробовал следующее:

$.win.addEventListener("open", function(e){
     alert("window appear");
});

Но это вызов только при первом открытии. Он не вызывается, когда экран открывается сзади.


person Divyesh Savaliya    schedule 15.02.2016    source источник
comment
Вы разрабатываете только для Android?   -  person Giordano    schedule 15.02.2016
comment
Нет... на самом деле я в ios   -  person Divyesh Savaliya    schedule 15.02.2016
comment
странно... фокус должен работать. Будьте осторожны с фокусом + предупреждающим сообщением, потому что, когда вы закроете предупреждение, оно снова вызовет обратный вызов фокуса, и у вас будет цикл.   -  person Carlos Zinato    schedule 15.02.2016
comment
Console.log тоже не работает   -  person Divyesh Savaliya    schedule 15.02.2016
comment
Не console.log, а Ti.API.info   -  person Giordano    schedule 15.02.2016
comment
Ti.API.info тоже не работает. если я использую open, то он отображается в журнале только один раз, но фокус даже не один раз   -  person Divyesh Savaliya    schedule 16.02.2016
comment
Итак, вы сохраняете ссылку на закрытое окно и снова открываете его, используя .open()? Возможно, поделитесь своим кодом о том, как вы его снова открываете?   -  person Shawn    schedule 17.02.2016


Ответы (1)


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

Похоже, вы никогда не закрываете окно или регистрируете прослушиватели событий внутри другой функции, убедитесь, что прослушиватели событий определены на верхнем уровне (а не в каких-либо других функциях).

Console.log не очень хорошо работает в титане. Используйте Ti.API.info('Alert message');

person Marchief    schedule 17.02.2016
comment
Я использую модуль бокового меню usgin... в этом модуле проблема -> посмотрите на мой этот пост - › stackoverflow.com/questions/35407127/ это решение работает нормально... но я хочу установить OpenWindow на ноль каждый раз, когда вы возвращаетесь на главный экран. Итак, я попытался сфокусироваться на домашнем экране... эта переменная должна быть обновлена ​​до нуля всякий раз, когда вы переходите на главный экран... либо из истории, либо из любого другого места. - person Divyesh Savaliya; 17.02.2016
comment
вы не можете установить для функции значение null, вам нужно удалить ее, чтобы предотвратить ее повторное срабатывание с помощью win.removeEventListener('open')... гарантируя, что это тот же код, что и ваша открытая функция - person Marchief; 18.02.2016
comment
я не хочу устанавливать функцию null... я просто хочу установить переменную OpenWindow null - person Divyesh Savaliya; 18.02.2016
comment
Как я уже сказал, вы не можете установить его равным нулю, но вы можете удалить его, если вы хотите изменить переменную, затем объявите ее в файле app.js/Alloy.js или используйте Alloy.Globals.propertyName (если вы используя сплав), а затем вы можете установить переменную, где и когда вам нужно, и она также будет действительна во время работы приложения. - person Marchief; 18.02.2016
comment
Моя переменная уже находится в app.js... когда вы открываете экран настроек из бокового меню, переменная меняется на OpenWindow = «Setting». Теперь, когда вы возвращаетесь из настроек домой, я хочу установить его как OpenWindow = '' .. поэтому я хочу, как я могу вызвать это, даже если я знаю, что домашний экран открыт ... чтобы я мог изменить его на ОкноОпен = '' - person Divyesh Savaliya; 18.02.2016
comment
Не лучше ли установить переменную openWindow по клику пункта меню в боковом меню, тогда это уже не проблема. - person Marchief; 18.02.2016
comment
я не устанавливаю эту переменную, а затем другую проблему, о которой я упоминаю в первом комментарии. - person Divyesh Savaliya; 18.02.2016