Я нашел решение проблемы.
После того, как пользователь изменяет информацию в теге редактора CKEditor1, расположенном в WKWebView, вам необходимо запустить следующий метод в webView.
Мне пришлось добавить метод textToHTML, потому что HTML, полученный и помещенный в строку, изменил символы, такие как «<» на «<».
- (IBAction)saveButtonItemPressed:(UIBarButtonItem *)sender {
// Save HTML contents of Editor Window
[self getEditorHTMLContents:^(NSString *result) {
NSString *editorContents1 = [self textToHtml:result];
NSLog(@"%@",editorContents1);
}];
}
-(void)getEditorHTMLContents:(void(^)(NSString* result))onFinish {
__block NSString *content;
// Script to get content of Editor1
NSString *script = @"(CKEDITOR.instances['editor1'].getData());";
[self.webView evaluateJavaScript:script completionHandler:^(id _Nullable result, NSError * _Nullable error) {
content = (NSString *)result;
if (error) {
NSLog(@"%@",error);
}
if (onFinish) onFinish(content);
}];
}
- (NSString*)textToHtml:(NSString*)htmlString {
if (!htmlString) return @"ERROR";
htmlString = [htmlString stringByReplacingOccurrencesOfString:@"&" withString:@"&" ];
htmlString = [htmlString stringByReplacingOccurrencesOfString:@"<" withString:@"<" ];
htmlString = [htmlString stringByReplacingOccurrencesOfString:@">" withString:@">" ];
htmlString = [htmlString stringByReplacingOccurrencesOfString:@""" withString:@""""];
htmlString = [htmlString stringByReplacingOccurrencesOfString:@"'" withString:@"'" ];
htmlString = [htmlString stringByReplacingOccurrencesOfString:@"</p><p>" withString:@"\n"];
// htmlString = [htmlString stringByReplacingOccurrencesOfString:@"\n" withString:@"<br />"];
while ([htmlString rangeOfString:@" "].length > 0) {
htmlString = [htmlString stringByReplacingOccurrencesOfString:@" " withString:@" "];
}
return htmlString;
}