Подтвердить что ты не робот

JQuery Mobile не работает внутри UIWebView

Я прихожу сюда после многих часов поиска решения и пробую разные подходы, чтобы исправить эту проблему, с которой я столкнулся с JQuery Mobile и моим iPad-приложением.

То, что я пытаюсь сделать, - это приложение для отчетов с Fusion Charts. Я успешно отобразил диаграммы в веб-представлениях (UIWebView) с использованием разных методов и следуя различным примерам, но теперь я хочу сделать одну задачу с помощью платформы JQuery Mobile.

Я не с помощью phonegap, и я выполнил шаги к письму, касающемуся интеграции JQuery Mobile + Xcode (я думаю). Графики загружаются без проблем на моем настольном и мобильном браузерах (iPad, iPhone 4 и iPod Touch 2G), но они не загружаются внутри моего UIWebView (хотя я использую тот же точный код).

Это то, что я делаю:

1) Добавление необходимых файлов (JS, CSS и HTML) в проект для их локального использования. После их добавления я перемещаю все с расширением .js из "Скомпилировать источники" в "Копировать ресурсы пакета". Это выглядит так:

enter image description here

enter image description here

2) Загрузите тестовый файл HTML (page_A1.html) в веб-представление:

enter image description here

3) Убедитесь, что все настроено в файле HTML с правильными путями и последней версией фреймворков:

enter image description here

4) Создайте и запустите только для получения пустого веб-представления.

Если я тестирую Javascript с предупреждением вроде этого:

enter image description here

Появится предупреждение о том, что Javascript работает:

enter image description here

И если я помещаю некоторый текст в контейнер, где должна отображаться диаграмма:

enter image description here

Я получу текст внутри веб-представления:

enter image description here

Я также тестировал удаленные ссылки на инфраструктуру вместо локальных и более старых версий библиотек без везения. Ничего особенного не происходит:

enter image description here

Мне кажется obvius, что

$(document).ready(function(){

не замечается или не вызывается xcode.

Это то, что я хотел бы выполнить:

enter image description here

Я не знаю, что еще проверить. Если у вас есть идеи, я был бы более чем благодарен.

4b9b3361

Ответ 1

Беспокойные парни. Я наконец получил его.

Некоторые старые привычки из дней веб-разработки сыграли меня здесь.

Он настраивается, вам не нужно указывать внутреннюю структуру каталогов для ваших файлов CSS и JS, чтобы это:

<link rel="stylesheet" href="css/jquery.mobile-1.1.0.min.css" />

<script src="js/jquery-1.7.2.min.js"></script>

<script src="js/jquery.mobile-1.1.0.min.js"></script>

shoudl действительно будет таким: Xcode:

<link rel="stylesheet" href="jquery.mobile-1.1.0.min.css" />

<script src="jquery-1.7.2.min.js"></script>

<script src="jquery.mobile-1.1.0.min.js"></script>

Невероятно, сколько времени мне потребовалось, чтобы это выяснить.

Теперь он работает.

Ответ 2

Правильный способ сделать это - загрузить JS файл, как в String, и вызвать метод UIWebView [stringByEvaluatingJavascriptFromString: @ "Javascript here..." ].

 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"content" ofType:@"js" inDirectory:@""];
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
NSString *jsString = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];

[webView stringByEvaluatingJavaScriptFromString:jsString];

Хотя это не сильно отличается от жесткого кодирования их в html файлах, он еще более упрощает его модуляцию. Счастливое кодирование:)