Сохранение отредактированного пользователем текстового поля в файле .js в iOS

Я создаю приложение iOS5 (запрограммированное на Objective-C), которое предоставляет несколько функций. Один из них — разрешить пользователю заполнять текстовое поле с помощью JavaScript. Когда пользователь нажимает кнопку «Тест», я хочу, чтобы он сохранялся в определенный файл JS и переходил в новое представление, отображая HTML-страницу, которая будет отображать результаты этого JavaScript на элементе холста.

К сожалению для меня, я понятия не имею, как сохранить текстовое поле в файл JS. Я также не знаю, действительно ли это лучший способ добиться результатов, к которым я стремлюсь.

Итак, может ли кто-нибудь сказать мне код, который мне нужно поместить в IBAction моей тестовой кнопки, чтобы сохранить файл, или есть ли лучший способ поместить пользовательский скрипт в HTML-файл с элементом холста?


person FreelancerJ    schedule 09.11.2011    source источник


Ответы (2)


У вас есть несколько вариантов сделать это.

Добавить обратный вызов в WebView можно только в десктопных приложениях, но можно найти обходной путь.

1- Установите обработчик для клика в javascript;

2- Этот обработчик анализирует значение через windows.location (пытается изменить текущий URL-адрес);

3- В UIWebviewDelegate установите webView:shouldStartLoadWithRequest:navigationType:, чтобы распознать эти значения, проанализированные javascript и возвращающие NO (отмена изменения URL-адреса).

После того, как у вас есть код, введенный пользователем, проще перейти к новому UIWebView. Вы можете сохранить файл через NSData или другой класс и загрузить его по пути, или вы можете напрямую проанализировать код, который будет отображаться через NSString.

ИЗМЕНИТЬ

Я, тем не менее, верю, что я сказал то, что вы хотите, но с немного большей информацией. Да, 3 NSString, вероятно, решат вашу проблему. Вы даже можете вызывать eval в javascript, через target-c и анализировать пользовательский код. Эти логические идеи являются хорошим подходом. Вы можете выбрать более легкий для вас.

В этом другом Q&A есть дополнительная информация.

person Ratata Tata    schedule 09.11.2011
comment
Кажется, что вопросы и ответы больше касаются доступа к данным Objective-C из существующего JavaScript? Я пытаюсь позволить пользователю написать файл JavaScript, который затем можно сохранить как файл JS и загрузить с помощью уже существующей HTML-страницы в следующем представлении, и я действительно пытаюсь сделать его максимально простым. . - person FreelancerJ; 11.11.2011
comment
Друг предложил мне, вероятно, просто иметь три NSStrings, одну неизменяемую, в которой есть весь HTML-код, предшествующий JavaScript (тип документа, заголовок и т. д.), одну изменяемую, которая затем будет содержать пользовательский JavaScript, и последнюю неизменяемую, содержащую остальная часть страницы, которые объединяются вместе и затем могут быть отправлены в UIWebView в качестве источника страницы. Это кажется вам работоспособным? - person FreelancerJ; 11.11.2011

Для этого вы можете использовать локальное хранилище html 5.

person alexandresoli    schedule 09.11.2011
comment
Все это приложение написано на Objective-C. Есть ли способ беспрепятственно использовать элементы HTML5 в моем существующем коде? - person FreelancerJ; 11.11.2011