Ошибка Adobe air air.navigateToURL в Internet Explorer

У меня действительно странная проблема с моим приложением Adobe Air. У меня есть метод, который запускает локальный файл HTML и передает ему некоторые элементы строки запроса.

Вот код:

function printWin(def) {
      def = encodeURI(def);
      var req = new window.runtime.flash.net.URLRequest('print.html');
      req.method = 'GET';
      var urlvars = new window.runtime.flash.net.URLVariables("d="+def);
      req.data = urlvars;
      air.navigateToURL(req);
      return false;     
}

Проблема в том, что если этот код запускается, когда Internet Explorer полностью закрыт, это нормально и создаст такой URL-адрес:

file:///C:/Program%20Files%20(x86)/Gastrointestinal%20Tumors%20Dictionar/print.html?d=ABC

Однако, если Internet Explorer уже запущен и код запущен, это URL-адрес, который создается:

C:\Program Files (x86)\Gastrointestinal Tumors Dictionary\print.html

Я в недоумении, почему это так, но, к сожалению, мне нужно срочно попытаться это исправить. У кого-нибудь есть идеи?


person Chris James    schedule 10.06.2010    source источник


Ответы (1)


Можете ли вы попробовать создать полный URL-адрес вместо использования относительного «print.html»?

Попробуй это:

var url:String = File.applicationDirectory.url.substring(0, File.applicationDirectory.url.lastIndexOf("/") + 1) + "print.html";
var req = new window.runtime.flash.net.URLRequest(url);
...

Это должно каждый раз получать полный URL-адрес в стиле file:///. Метод подстроки пытается взломать текущий файл, чтобы вы оказались в текущем каталоге, оставляя вам ту же возможность указать относительный путь, за исключением того, что теперь он полностью соответствует корневому каталогу вашего приложения.

person Jordan    schedule 19.06.2010