Appcelerator Titanium: как использовать событие onLoad окна?

#javascript #android #titanium

#javascript #Android #titanium

Вопрос:

 mainWin.pageLoad=false;
mainWin.addEventListener('load', function(e) {
  if(mainWin.pageLoad) {
    mainWin.open();    
     } else {
      mainWin.close();    
      var LoginWindow = Titanium.UI.createWindow({ 
        title : 'Login',  
        url:'Login.js'   
      });
   LoginWindow.open();
  }
});
  

Это мой app.js файл. Если переменная pageLoad содержит логическое значение true, то мне нужно перейти к MainWin {Which is the current Window} , иначе мне нужно перейти на страницу входа в систему.

Ответ №1:

     var LoginWindow = Titanium.UI.createWindow ({
      backgroundColor:'#1E563F',
      url:'Login.js',
    });


    mainWin.addEventListener('open', checkPage);
        mainWin.pageLoad = false;

        function checkPage() {  
           if(mainWin.pageLoad) {
             mainWin.open();
           } else {
             mainWin.close();
             LoginWindow.open();
           }
        }

  mainWin.open();
  

Это должно сработать….

Ответ №2:

Вы пытались поместить свой код подобным образом?

 mainWin.pageLoad = false;
mainWin.addEventListener('load', function(e) {
  if(mainWin.pageLoad) {
    mainWin.open();    
   } else {
      mainWin.close();    
      var LoginWindow = Titanium.UI.createWindow({ 
        title : 'Login',  
        url:'Login.js'   
      });
   LoginWindow.open();
  }
});
  

Комментарии:

1. Я попробовал ваш способ, свой код тоже обновил … но каждый раз, когда он загружает MainWin.open(), независимо от изменения значения boolen.

Ответ №3:

Вероятно, причина в том, что переменная the обновляется до true перед отправкой события. Вы пытались вывести на консоль значение MainWin.pageLoad? Где вы обновляете переменную до true?

Ответ №4:

попробуйте использовать focus событие вместо события load.

Комментарии:

1. тогда могу я предложить вам опубликовать весь ваш код в pastie, потому что один или два описанных здесь подхода должны сработать, поэтому проблема должна заключаться в другом