2016-08-27 2 views
0

Я работаю с CKEditor. После того, как пользователь изменит текст внутри редактора, мне нужно как-то «сохранить» изменения пользователей.CKEditor iOS Получить HTML-редактор Содержание на кнопке Событие

Я пробовал искать и не повезло найти то, что мне нужно.

Кто-то, пожалуйста, помогите, это было длинное и трудное путешествие для меня, пытаясь получить CKEditor в моем приложении.

ответ

0

Я нашел решение проблемы.

После того, как пользователь изменяет информацию в теге редактора 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:@"&amp;" withString:@"&" ]; 
    htmlString = [htmlString stringByReplacingOccurrencesOfString:@"&lt;" withString:@"<" ]; 
    htmlString = [htmlString stringByReplacingOccurrencesOfString:@"&gt;" withString:@">" ]; 
    htmlString = [htmlString stringByReplacingOccurrencesOfString:@"&quot;" withString:@""""]; 
    htmlString = [htmlString stringByReplacingOccurrencesOfString:@"&#039;" withString:@"'" ]; 

    htmlString = [htmlString stringByReplacingOccurrencesOfString:@"</p><p>" withString:@"\n"]; 
    // htmlString = [htmlString stringByReplacingOccurrencesOfString:@"\n" withString:@"<br />"]; 
    while ([htmlString rangeOfString:@"&nbsp;&nbsp;"].length > 0) { 
     htmlString = [htmlString stringByReplacingOccurrencesOfString:@"&nbsp;&nbsp;" withString:@" "]; 
    } 
    return htmlString; 
} 
Смежные вопросы