Я объявил свое приложение (текстовый редактор), чтобы иметь возможность открывать любой RTF-файл (например, из вложения электронной почты). Делегат приложения отправляет сообщение «loadContent: (NSURL *) url» в контроллер UiwebView, когда пользователь выбирает вложение. В приемнике, я получаю URL и загрузить файл в формате RTF в UIWebView с использованиемИмпорт RTF-файла в UIWebView (редактируемый контент)
- (void) loadContent: (NSURL *) passedURL
{
if (passedURL) {
[self.myWebView loadRequest:[NSURLRequest requestWithURL:passedURL]];
} else {
NSBundle *bundle = [NSBundle mainBundle];
NSURL *indexFileURL = [bundle URLForResource:@"index" withExtension:@"html"];
[self.myWebView loadRequest:[NSURLRequest requestWithURL:indexFileURL]];
}
}
Делая это, все идет нормально, и «myWebView» отображает содержимое файла RTF. Проблема в том, что это представление должно быть доступно для редактирования, а код должен содержать некоторый javascript, который у меня есть в моем файле с индексом «index.html». Я загружаю при запуске приложения. Так что я добавил код, чтобы извлечь HTML-код, созданный из файла RTF, чтобы иметь возможность впоследствии восстановить полный код, вставив извлеченный код в теге так:
<div id="content" contenteditable="true"> imported html from rtf should be there</div>
Я изменил метод LoadContent, чтобы получить, что ,
- (void) loadContent: (NSURL *) passedURL
{
if (passedURL) {
[self.myWebView loadRequest:[NSURLRequest requestWithURL:passedURL]];
NSString *dum=[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML;"];
NSLog(@"%@",dum);
} else {
NSBundle *bundle = [NSBundle mainBundle];
NSURL *indexFileURL = [bundle URLForResource:@"index" withExtension:@"html"];
[self.myWebView loadRequest:[NSURLRequest requestWithURL:indexFileURL]];
}
}
Заглядывая в результате NSLog, я получаю только на следующий HTML
<div id="content" contenteditable="true">Hello folks</div>
Какой был содержание HTML в myWebView ПЕРЕД Я загрузил файл в формате RTF ...
У вас есть представление о том, что происходит? Почему dum отображает прежний код, так как отображаемый myWebView отображает новый? Это потому, что loadRequest выполняется в отдельном потоке и что при выполнении следующей команды myWebView по-прежнему содержит прежний код?
Благодаря
[Изменено] Я также попытался NSLog содержание WebView в webViewDidFinishLoad: делегат метода, но получить тот же результат: содержание этого WebView, прежде чем я открыл файл вложения в формате RTF. Возможно ли синхронно сделать запрос на загрузку?
Спасибо. Я сделал это в webViewDidFinishLoad, но получаю тот же результат ... – Denis
Можете ли вы обновить вопрос тем, что у вас есть сейчас? –
Я уже сделал это! – Denis