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中的应用以及遇到的坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 输入框查询_Element
- 下一篇: android sina oauth2.