Нужен способ предупредить пользователя о выходе из приложения Flex, нажав кнопку «Назад» и дать ему возможность остаться в IE - PullRequest
1 голос
/ 16 ноября 2010

Я пытался создать ложную запись в браузере (то есть browserManager.setFragment ("bb = 1")), а затем добавить событие BrowserChangeEvent.BROWSER_URL_CHANGE в менеджер браузера, чтобы перехватить его, прежде чем оно полностью покинет приложение,

После этого мое всплывающее окно позволит пользователю выйти из приложения с помощью ExternalInterface.call ("history.go", - 1);если все в порядке.

Моя проблема сейчас заключается в том, что это прекрасно работает во всех браузерах, кроме IE (особенно 8).Любая идея, что я могу сделать, чтобы заставить это работать в IE?

Вот моя реализация:

  init():{
  browserManager = BrowserManager.getInstance();
  var historyLen:String = ExternalInterface.call("history.length.toString");
  if(historyLen != "1") 
    browserManager.setFragment("bb=1");

  browserManager.addEventListener(
    BrowserChangeEvent.BROWSER_URL_CHANGE,
    urlChange
  );
 }

private function urlChange(e:BrowserChangeEvent = null):void
{
  var o:Object = URLUtil.stringToObject(browserManager.fragment);
  if(o.hasOwnProperty('bb') && o.bb == 1){
    bbInit = true;
  }
  if(bbInit && !o.hasOwnProperty('bb'))
    Alert.show("Are you sure you want to exit the app?","Exit", "", Alert.OK|Alert.CANCEL,this,bbClose);
}

private function bbClose(e:CloseEvent):void
{
  if (e.detail == Alert.OK) {
    ExternalInterface.call("history.go",-1);
  } else {
    browserManager.setFragment("bb=1");
  }
}

Кстати, предупреждение не всплывает в IE, поэтому я уверен, что этолибо проблема с добавлением ложной истории, либо с функцией urlChange.

1 Ответ

2 голосов
/ 16 января 2011

Вы застряли с использованием метода подтверждения javascript, чтобы убедиться, что вы безопасны во всех браузерах.

http://www.tizag.com/javascriptT/javascriptconfirm.php

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...