Вставка HTML в UIWebView - PullRequest
       32

Вставка HTML в UIWebView

0 голосов
/ 25 марта 2012

Я пытаюсь сделать текстовый редактор с использованием редактируемого контента UIWebView, поскольку UITextView не получает никакого обогащения. Интересно, как я могу заменить выделение программно или вставить HTML-код (например, чтобы создать ссылку на выделенный текст или реализовать функцию поиска / замены). Я попробовал:

[self.webTexteView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.ExecCommand('insertHTML', false, '%@')", myString]];

но это не работает ... Знаете ли вы, есть ли решение для этого?

Спасибо

Денис

Ответы [ 2 ]

6 голосов
/ 25 апреля 2012

Уже поздно, но только если кто-то еще смотрит на это ваше оригинальное решение, у вас просто случайно

document.ExecCommand

должно быть

document.execCommand

Я проверил его в нижнем регистре e, и он работает.

1 голос
/ 25 марта 2012

Вы можете загрузить html в свое веб-представление, используя сообщение loadHTMLString:. Я ожидаю, что это не то, что вы хотите.

После загрузки некоторого html у вас есть два варианта для связи между javascript в вашем веб-представлении и вашим кодом Objective-C. 1 инициируется из target-c, а 2 - из javascript.

  1. Вы можете выполнить execute javascript, используя сообщение stringByEvaluatingJavaScriptFromString: в вашем uiwebview. Это достаточно гибко и может использоваться как для ввода кода, так и для вызова существующего кода. Например. Вы можете сделать [webView stringByEvaluatingJavascriptFromString:@"document.getElementById(\"editor\").innerHTML"], чтобы получить содержимое из div с помощью редактора идентификаторов.

  2. Благодаря реализации UIWebViewDelegate вы можете получать уведомления через webView:shouldStartLoadWithRequest:navigationType: каждый раз, когда запрашивается URL-адрес, открываемый в веб-просмотре. Это дает вам возможность извлечь информацию из URL и отменить дальнейшую загрузку, вернув NO. Например. В вашем javascript вы можете сделать document.location = "bold";, когда курсор переместится на жирный текст. Это даст вам возможность обновить ваш пользовательский интерфейс, чтобы отразить это.

...