Я пытаюсь передать содержимое файла в 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];
Кажется очень странным, что вышесказанное работает, но оно работает!