摘要:一段簡(jiǎn)單的代碼程序猿原生加載富文本原生的直接加載如果是有方法,但是這種加載方式,圖片無(wú)法在顯示。以上的兩種方式按自己的需求來(lái)進(jìn)行使用的,試用于后臺(tái)接口直接返回?cái)?shù)據(jù)給移動(dòng)端進(jìn)行加載的。
文章鏈接:https://mp.weixin.qq.com/s/69TRkmFL1aNuSqfw4ULMJw
項(xiàng)目中經(jīng)常涉及到富文本的加載,后臺(tái)管理端編輯器生成的一段html 代碼要渲染到移動(dòng)端上面,一種方法是前端做成html頁(yè)面,放到服務(wù)器上,移動(dòng)端這邊直接webView 加載url即可,還有一種后臺(tái)接口直接返回這段html富文本的,String類型的,移動(dòng)端直接加載的;具體的需求按實(shí)際情況而定,webview直接加載url的就不說(shuō)了,這里主要說(shuō)說(shuō)關(guān)于直接加載html的。
一段簡(jiǎn)單的html代碼
private String txt = "原生webView 加載富文本" + "程序猿TX " + "" + " ";
原生的webView 直接加載
webView.loadDataWithBaseURL(null,txt,"text/html","UTF-8",null);
如果是textView 有setText(Html.fromHtml(txt))方法,但是這種加載方式,圖片無(wú)法在textView顯示。
如果非要使用textView 加載...
這里我使用的是RichText 第三方庫(kù)
implementation ("com.zzhoujay.richtext:richtext:3.0.7"){ exclude group: "com.android.support" }
同時(shí)排除了support包的沖突,使用上
RichText.initCacheDir(this); RichText.from(txt).into(tv);
更多的方法可以去github上查看,這種方式圖片是可以加載的,但是css的樣式是沒(méi)法呈現(xiàn)的。
以上的兩種方式按自己的需求來(lái)進(jìn)行使用的,試用于后臺(tái)接口直接返回?cái)?shù)據(jù)給移動(dòng)端進(jìn)行加載的。
加載html文件一般的webView直接加載url體驗(yàn)上沒(méi)那么流暢,相對(duì)的加載html文件會(huì)好點(diǎn)。后臺(tái)依舊返回html數(shù)據(jù)給移動(dòng)端,前端負(fù)責(zé)寫(xiě)html 文件模板,android將html文件放在assets 文件夾下面,通過(guò)webView.loadUrl("file:///android_asset/**.html")加載,至于數(shù)據(jù),就是移動(dòng)端與前端的交互了,之前推薦過(guò)一個(gè)三方庫(kù) [android與js的交互之jsbridge使用
](https://www.manjiexiang.cn/bl...,通過(guò)這種方式將數(shù)據(jù)傳遞給前端,同時(shí)可以監(jiān)聽(tīng)到j(luò)s的方法調(diào)用。
這種方式更加適用于一個(gè)頁(yè)面模板可以反復(fù)使用的,后臺(tái)返回不同的數(shù)據(jù)進(jìn)行加載。一個(gè)場(chǎng)景就是 viewpager里面的每個(gè)fragment頁(yè)面結(jié)構(gòu)相同,如果使用url加載,每個(gè)fragment里的webview去加載一個(gè)url,這種在體驗(yàn)上就不是很優(yōu)雅,而使用html文件加載的方式,后臺(tái)可以返回list 數(shù)據(jù)給移動(dòng)端,對(duì)應(yīng)的去用webview加載本地文件,把各項(xiàng)的數(shù)據(jù)傳給前端展示,加載渲染的速度上會(huì)快點(diǎn)。當(dāng)然如果原生的可以直接渲染頁(yè)面的,優(yōu)先原生的。
如果是那種單頁(yè)面,只是瀏覽功能的,類似于 "關(guān)于我們" 那種頁(yè)面可以直接用url加載的。
這篇文章主要介紹的是關(guān)于html 加載的,目前我們使用的是第三種方式的,不同的需求場(chǎng)景得根據(jù)各個(gè)項(xiàng)目來(lái)定的,關(guān)于第三種加載 html 文件的,后續(xù)再寫(xiě)一篇文章介紹移動(dòng)端與前端交互的,而且我們加載的富文本內(nèi)容相對(duì)的也不一樣。
歡迎關(guān)注我的個(gè)人博客:https://www.manjiexiang.cn/
更多精彩歡迎關(guān)注微信號(hào):春風(fēng)十里不如認(rèn)識(shí)你
一起學(xué)習(xí),一起進(jìn)步,歡迎上車,有問(wèn)題隨時(shí)聯(lián)系,一起解決?。。?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/53146.html
摘要:傳值給原生通過(guò)方法傳值,簡(jiǎn)單模擬了點(diǎn)擊事件來(lái)傳遞。第一個(gè)參數(shù)是約定注冊(cè)的名稱,與原生接受處方法名一致第二個(gè)參數(shù)是要傳遞的值第三個(gè)參數(shù)是接受原生返回的回調(diào)。 文章鏈接:https://mp.weixin.qq.com/s/Iqd0dKM-ZW4UwkIgSTnvYg 在上一篇文章「android 記一次富文本加載之路」中 介紹了關(guān)于android加載富文本的方法,其中提到的加載html...
摘要:傳值給原生通過(guò)方法傳值,簡(jiǎn)單模擬了點(diǎn)擊事件來(lái)傳遞。第一個(gè)參數(shù)是約定注冊(cè)的名稱,與原生接受處方法名一致第二個(gè)參數(shù)是要傳遞的值第三個(gè)參數(shù)是接受原生返回的回調(diào)。 文章鏈接:https://mp.weixin.qq.com/s/Iqd0dKM-ZW4UwkIgSTnvYg 在上一篇文章「android 記一次富文本加載之路」中 介紹了關(guān)于android加載富文本的方法,其中提到的加載html...
摘要:?jiǎn)栴}分析隨著回滾版本的放量,主端崩潰逐漸回歸正常,進(jìn)一步坐實(shí)了新版本存在問(wèn)題。內(nèi)容非常多但都是重復(fù)的,看起來(lái)進(jìn)程沒(méi)有啟動(dòng),導(dǎo)致連接端一直在進(jìn)行重連。背景公司的主打產(chǎn)品是一款跨平臺(tái)的 App,我的部門負(fù)責(zé)為它提供底層的 sdk 用于數(shù)據(jù)傳輸,我負(fù)責(zé)的是 Adnroid 端的 sdk 開(kāi)發(fā)。sdk 并不直接加載在 App 主進(jìn)程,而是隔離在一個(gè)多帶帶進(jìn)程中,然后兩個(gè)進(jìn)程通過(guò) tcp 連接進(jìn)行通信...
閱讀 2761·2021-09-24 10:34
閱讀 1862·2021-09-22 10:02
閱讀 2253·2021-09-09 09:33
閱讀 1459·2021-08-13 15:02
閱讀 3271·2020-12-03 17:10
閱讀 1180·2019-08-30 15:44
閱讀 2144·2019-08-30 12:58
閱讀 3229·2019-08-26 13:40