cef在android中使用_关于富文本在Android中的应用以及遇到的坑
富文本可以为用户提供更加多样化的文本展示形式,但由于其使用了H5标签的特殊性,一般都需要第三方框架的支持。这里推荐一款合适的第三方富文本框架,richeditor。
首先我们要使用该功能需要引入相关jar包,引入方法如下
compile 'jp.wasabeef:richeditor-android:1.2.0'
然后我们需要解决一个问题,那就是,在富文本编辑器的使用中,5.0以下的系统自带的webview无法实现删除图片的功能。这个漏洞在5.0以后被谷歌公司进行了修复。但是问题来了,公司的软件是要兼容到4.2系统的,总不能因为这个问题不让用户用4.x的手机吧,而且这批用户还不少,所以需要解决这个问题。我们的思路是替换掉系统的webview,更换第三方自定义webview。这里有一个好的框架推荐就是腾讯的X5内核,内含腾讯重写的Webview,版本到7.0。这里不重点讲述X5内核的好处,我们看一下如何替换。我们看到,RichEditor中最关键的一个自定义类是一个叫做RichEditor的类。这是我们布局上输入富文本区域的控件。我们看到它的继承类是WebView。这里咱们把代码拷贝出来并且重写该类,并将继承类换成X5内核中的WebView,如下样式:
public class XRichEditor extends com.tencent.smtt.sdk.WebView
这样我们就可以在这个类中进行其他的一些修改,比如新功能的添加之类的,下面举两个实用的小例子
例子1:
这个富文本没有添加分割线的方法,我们为它加一个。在重写的XRichEditor中,就是集成了X5内核的富文本中,我们写入如下代码
public void setSplitt() {
exec("javascript:RE.insertHTML('
');");
}
这样我们就添加了一个加入分割线的方法。其实细心的朋友已经发现insertHTML就是在光标处插入html代码的方法,方便我们在光标的停留位置插入代码。
例子2:
我们还可以让网页的内容响应我们的点击事件
public void insertImg(String url, String alt){
String html = "
";
exec("javascript:RE.insertHTML('"+html+"');");
Log.i("img",html);
}
这样,我们就可以让我们的图片响应通过WebView注入的接口,从而调用我们原生的方法。
另外,我们讲一下富文本编辑器的原理。
富文本编辑器其实就是一个加载在我们WebVIew上的一个网页,网页的源码是这样写的
可以看到,div被我们标记成了内容可以编辑的状态。
紧接着我们使用document.execCommand的相关方法在js文件中对HTML进行相关的操作。改套方法可以允许运行命令来操纵可编辑区域的内容。大多数命令影响文档的选择(粗体,斜体等),而其他命令插入新元素(添加链接)或影响整行(缩进)。当使用contentEditable时,调用 execCommand() 将影响当前活动的可编辑元素。
这样我们就可以愉快的使用富文本编辑器了。更多功能还要读者自己去探索。
By WaterWood
cef在android中使用_关于富文本在Android中的应用以及遇到的坑相关推荐
- edui 富文本编辑_React中使用UEditor百度富文本的方法
前言 本文将介绍笔者在React的项目中使用百度的富文本编辑器Ueditor的过程.注意本文不提供一条龙式的使用方法,只是将使用过程中的一些实现思路进行总结,供以参考.react项目中导入uedito ...
- 使用UIWebView中html标签显示富文本
使用UIWebView中html标签显示富文本 用UIWebView来渲染文本并期望达到富文本的效果开销很大哦! Work 本人此处直接加载自定义字体"新蒂小丸子体",源码不公开, ...
- vue中引入TinyMCE实现富文本编辑器
整片文章是以vue2.X 引入tinymce富文本编译器 首先,先确认你的vue版本是 2 还是 3 ,查看项目的package.json中vue的版本,我的是2.5.2 一共两个步骤 vue工程中安 ...
- 图片 富文本 粘贴_用C++实现富文本控件(中): 撤销
用C++实现富文本控件: 撤销 本节是关于撤销重做相关实现. 项目地址: Github-RichED 本文备份地址: github 撤销重做 这就被称为UNDO/REDO之类的, 简直是'增量'的代表 ...
- Android UI设计小知识——富文本
富文本 什么是富文本? 可能大家要问了,富文本是什么?怎么是这个"富"来,好奇怪啊--第一次接触的时候我也不知道什么是富文本,但是后来老师给举了一个例子就明白了.都喜欢用QQ聊天, ...
- 富文本在TextView中显示图片
最近在项目中有需求使用到了富文本,在android中我们设置TextView显示富文本,如果不涉及图片的话还是比较简单的 TextView tv = new TextView(this); Spann ...
- 知乎日报富文本处理android,有了这些app,工作效率啪啪啪
原标题:有了这些app,工作效率啪啪啪 对于热衷于自我提升的职场工作者来说,手机是一个追求高效率的必备工具. 一个高效学习的人,手机里都应该装哪些APP呢? 录音软件 Recordium 参加活动,如 ...
- android webview 样式解析不正确,解决Android Webview加载Html富文本,h5字体样式不起作用问题...
问题起因:WebView作为整个页面的一个部分展示,展示的是一段H5片段(Html中body标签中的部分) 问题描述:H5前端设置好的字体大小,在WebView中展示时不起作用,导致字体大小都一样 问 ...
- android 屏幕投射_将自定义内容从Android应用投射到电视(2020年方法)
android 屏幕投射 If you're anything like me, who has never created a screen-cast app before and want to ...
最新文章
- [vijos1234]口袋的天空最小生成树
- 钱颖一:人工智能将使中国教育优势荡然无存
- 由浅入深CIL系列【目录索引】+ PostSharp AOP编程【目录索引】
- cadence原理图封装pin名称重复_原理图设计篇|单片机设计项目实例分享
- 03bash特性详解
- 4个小时实现一个HTML5音乐播放器
- Swagger注解传参
- CAD绘制填充并设置填充透明度
- PMSG永磁同步发电机并网仿真模型
- php怎么让浏览器崩溃,让IE6浏览器崩溃
- 【优化调度】基于粒子群算法求解水火电调度优化问题含Matlab源码
- Error:A JNI error has occurred,please check your installation and try again
- 设置海思芯片MMZ内存、OS内存详解
- JavaScript 的addEventListener() 事件监听详解!
- 推荐一款超级好用的AI模型训练平台——Tesra超算网络!
- 整理的一些建站中常见的问题与解决代码
- brpc源码学习(二)-bthread的创建与切换
- android中api简介
- Oracle官网下载旧版本jdk
- Burp suite 基本手动工具
热门文章
- nginx反向代理配置实例分享
- 走进Windows Server 2008服务器核心(Serve Core)
- Bootstrap静态cdn
- asc desc排序_21.数据库排序?左连接 ?右连接?
- python 图标题上移_Python-Matplotlib将图形标题移动到y轴
- appium和airtest_关于Airtest自动化测试工具
- [转载] public static void main(String[] args) 隐含了什么?
- 给定一个整数判断是否为素数_Ruby程序检查给定数字是否为素数
- Java Integer类numberOfLeadingZeros()方法的示例
- java 字节数组作用_这段java代码中字节数组b起到了什么作用?