Передача текста из файла в веб-просмотр через stringByEvaluatingJavaScriptFromString: - PullRequest
0 голосов
/ 30 января 2012

Я пытаюсь передать содержимое файла в Webview. Используя отладчик, я знаю, что fileContents правильно содержит содержимое файла и что файл читается правильно. Тем не менее, я получаю ошибку JavaScript «EOF» в веб-просмотре. Нужно ли экранировать или кодировать текст, прежде чем я передам его в веб-просмотр? Могут ли символы новой строки в fileContents нарушать stringByEvaluatingJava ...?

//get file contents
NSStringEncoding *encoding;
NSError *error;
NSString *fileContents = [NSString stringWithContentsOfFile:path usedEncoding:encoding error:&error];

//trigger fileopen event and pass file contents into webview
NSString *event = @"fileopen";
NSString *extraJS = [NSString stringWithFormat:@"e.results='%@'",fileContents];
NSString *str = [NSString stringWithFormat:@"var e = document.createEvent('Events'); e.initEvent('%@', true, false); %@; document.dispatchEvent(e); ", event, extraJS];
[webView stringByEvaluatingJavaScriptFromString:str];

Редактировать (основываясь на ответе Хези):

NSString * result = [NSString stringWithFormat:@"e.result=decodeURIComponent('%@')",[results stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
[JSEventHelper triggerEvent:@"load" withExtraJS:result forWebView:self.webView];

Кажется очень странным, что вышесказанное работает, но оно работает!

1 Ответ

2 голосов
/ 30 января 2012

Попробуйте использовать метод NSString stringByAddingPercentEscapesUsingEncoding для кодирования вашей строки перед отправкой в ​​javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...