Adobe air air.navigateToURL ошибка с интернет-проводником - PullRequest
2 голосов
/ 10 июня 2010

У меня действительно странная проблема с моим приложением 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-адрес, подобный этому:

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

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

C: \ Program Files (x86) \ Желудочно-кишечные опухоли Словарь \ print.html

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

1 Ответ

0 голосов
/ 19 июня 2010

Можете ли вы попробовать создать полный 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 каждый раз.Метод подстроки пытается взломать текущий файл, чтобы вы оказались в текущем каталоге, оставив вам такую ​​же возможность сделать относительный путь, за исключением того, что теперь он полностью соответствует корневому каталогу вашего приложения.

...