Решение проблем динамической привязки JS Android 4+ на PhoneGap 1.4.1

Я сталкиваюсь с часто упоминаемой проблемой доступа к файлам JS с помощью PhoneGap на Android 4.0+. Это неприятная ошибка веб-просмотра, которая фатально влияет на приложения PhoneGap. Если я попытаюсь динамически загрузить скрипт, например.

$('head').append('<script type="text/javascript" charset="utf-8" src="app/android.js"></script>');

Android 4.0+ будет работать с ошибкой 404, также известной как «ошибка хрома -6» — он не может разрешить URL-адрес. Это имеет катастрофические последствия для запросов XHR. Проблема описана в этой теме и добрый пользователь выложил патч для PhoneGap 1.7:

http://code.google.com/p/android/issues/detail?id=17535

Я пробовал этот патч, и он работает. Мне интересно, можно ли что-нибудь сделать для PhoneGap 1.4.1. Обновление моей производственной сборки до 1.7 на данный момент не является жизнеспособным решением, и я полагаю, что другие находятся в аналогичном положении с этой серьезной ошибкой Android. Стоит отметить, что даже PhoneGap 1.8.1 не интегрировал указанный выше патч.

Кто-нибудь смог решить эту проблему для PhoneGap 1.4.1?


person jddh    schedule 20.06.2012    source источник


Ответы (1)


У меня была аналогичная проблема с динамической загрузкой js в ICS, и я решил ее следующим образом:

  1. Прочитайте содержимое JS-файла, используя код Java, и java возвращает содержимое js-файла в виде строки
  2. В js получить данные из кода Java и выполнить код глобально, используя globalEval
person rpelluru    schedule 11.09.2012