iOS端的富文本编辑器

富文本.gif

可以进行 文字大小,样式,颜色的修改以及图片的插入。

js端

这个部分我主要参照着网上iOS端富文本开源项目 ZSSRichTextEditor 来进行的编写,下面截取一部分代码。

mail_editor.setBold = function() {

mail_editor.restorerange();
document.execCommand('bold', false, null);
mail_editor.enabledEditingItems();

}

这段代码主要是用来设置选中文本为粗体的js代码。

iOS端

iOS端这边除了基本的界面以外,使用的WebView与js的交互,例如:

- (void) sendMessageToJS:(NSString *)msg
{
[self.editorView stringByEvaluatingJavaScriptFromString:@"mail_editor.prepareInsert();"];
[self.editorView stringByEvaluatingJavaScriptFromString:msg];
[self recordTapEvents:msg];
}

self.editorView 是一个 WebView,这个方法是我封装的一个往js端发送消息的一个方法,传入的字符 msg,是js端的函数名。

一些问题

在项目编写的过程中,主要是处理焦点失去的问题,当点击选择样式的按钮后,会出现WebView里聚集的焦点丢失,这里面需要处理蛮多的问题。

目前做的Demo还存在着一些问题,比如说无法获取当前选中文本的样式(虽然这个问题我觉得可以用遍历节点来解决,但是很麻烦)。

这算是我在实习期做的一个比较全面和核心的东西吧。

Demo地址:https://github.com/bbbbprefect/mailEditor.git

如果有侵犯到其他人的权益,请联系我删除

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,019评论 3 119
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,714评论 1 180
  • ——【我的90天时间管理践行首月分享】 易效能一阶上完后,从2017年5月11日起,我订下了未来90天要持续践行达...
    林彦_解读未知的你阅读 491评论 0 3
  • 这几天可能是吃得太补了,又打火锅喉咙痒痒的,上火了! 凌晨6点多,他们两个起床去拿货,我赶紧起来上个厕所,咕咚咕咚...
    清和简阅读 273评论 0 0