1. 程式人生 > >安卓載入html程式碼片段

安卓載入html程式碼片段

我們在做專案的時候,有時候後臺會直接給你返回一段html的程式碼片段,即後臺沒有處理過的富文字資訊。以前的解決方式是讓後臺將其生成一個靜態網頁 ,用webView進行展示,這樣子本身就是一個錯誤的選擇,現在PASS。

正確的解決方式網上流傳著4個版本。

第一個 :直接使用第三方富文字載入器進行載入。

第二個:使用TextView進行載入---有缺點:當顯示的富文字資訊的圖片路徑不全時,載入失敗。

第三種:使用jsoup進行解析後新增屬性,然後用webView進行載入。

第四種:直接新增頭部,然後用webView進行載入。

這四種方式基本都試了一變,發現第一種必須找到好的開源專案,由於時間比較緊張,故而放棄了沒有再研究。第二種已經說了,不在累述。

我們直接講第三種

第三種

專案需要關聯jsoup    

使用文件:

http://www.open-open.com/jsoup/parse-body-fragment.htm

接下來直接上程式碼吧

public String jsoup(String str) {
    Document doc = (Document) Jsoup.parse(str);
Elements Img = doc.getElementsByTag("img");  //從一段富文字資訊中找到所有圖片
Elements p = doc.getElementsByTag("p"); //從一段富文字資訊中找到所有文字
if 
(Img.size() != 0) { for (Element e_Img : Img) { e_Img.attr("width", "100%");//設定圖片的寬為100%,高度自適應 e_Img.attr("height", "auto"); } } if (p.size() != 0) { for (Element e_p : p) { Log.e("xiaoma", e_p.toString()); e_p.attr("style", "font-size:40px"); //設定字型的大小 } } return
doc.toString(); }
然後使用webView進行解析就好了。但是這種方式只適用於4.4急以後,再4.3上會出現webView無限下滑的事情。。如何解決?4.4以後這樣做,4.3之前,直接用webView直接載入富文字資訊。

第四種解決方式:

private String getHtmlData(String bodyHTML) {
    String head = "<head>" +
            "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> " +
            "<style>img{max-width: 100%; width:auto; height:auto;}</style>" +
            "</head>";
    return "<html>" + head + "<body>" + bodyHTML + "</body></html>";
}
目前來說第四種是官方給出的最優解決辦法。

最後給出webview進行載入即可。

webView.loadData(str, "text/html; charset=UTF-8", null);

這種方式目前在小米,華為和 三星身上沒有發現問題。。

這是我第一次寫部落格,也只是借鑑的前輩的方法。在此進行感謝。

部落格我會繼續寫下去的。。大家共勉。我是小馬。謝謝

相關推薦

載入html程式碼片段

我們在做專案的時候,有時候後臺會直接給你返回一段html的程式碼片段,即後臺沒有處理過的富文字資訊。以前的解決方式是讓後臺將其生成一個靜態網頁 ,用webView進行展示,這樣子本身就是一個錯誤的選擇

通過Html網頁呼叫本地app程式程式碼

前段時間寫一些移動端的專案,正好專案中遇到與native互動的需求,特此將其整理下來: 一. 通過html頁面開啟Android本地的app 首先在編寫一個簡單的html頁面 <html> <head>

記Android webView載入html程式碼 不執行js方法的情況

頁面中有一個webView顯示後臺返回的富文字資料,富文字資料是一串html程式碼,但是並沒有<html><body>這些標籤,webView不做任何處理,使用 webView.loadData(html, "text/html; charset=U

Android webview載入html程式碼 上下左右有白邊問題

直接開始後臺返回一串html程式碼字串 然候客戶端用webview做展示  別的都正常  只是四周會有白邊 網上找的各種方法都不好使 如下圖後來給webview添加了兩個setting表框變窄了 但是還

iOS WKWebView如何載入Html程式碼? WKWebView如何修改字型大小和顏色?

1.載入Html程式碼使用:NSString *htmlString = @“ <p> \U770b\U89c1\U5c31\U4e0a\Uff0c\U4e0d\U8981\U6002&l

第二行程式碼學習(一)

學習環境 Android Studio 3.0 學習內容總結 1)安卓的四大元件Activity,Broadcast Receiver,Content Provider, Service。這裡主要先學習了Activity。 2)安卓Activity生命週期,以及安卓Acti

載入視訊縮圖,展示於ListView中,完美實現

安卓獲取視訊縮圖,展示於ListView中,完美實現應用場景:獲取安卓手機外部儲存視訊列表,介面卡繼承至CursorAdapter,利用ViewHolder進行優化;並利用非同步載入和快取機制,在加上一個繫結TAG機制。在ListView中展示視訊某一幀的圖片,視訊名稱,視訊

webview載入html程式碼(包含播發騰訊視訊的分享程式碼

騰訊視訊下方的分享點選之後會出現三個不同的分享地址,如圖:,第一個好像是基於falsh的,第二個是基於falsh播放的,由於android4.+不再支援falsh外掛,所以這兩種方式都不能使用,第一種會直接白屏,第二種會顯示外掛無法載入,第三種可以正常使用。 webView = (W

Android webView載入html程式碼詳解

最近的專案需要做一個如同微信中的騰訊新聞的功能,如下圖所示: 直接上關鍵程式碼: 佈局: Xml程式碼  <?xmlversion="1.0"encoding="utf-8"?> <RelativeLayoutxmlns:android="htt

android 使用webview載入html程式碼亂碼問題

使用webview.loadData(url,"text/html","UTF-8")方法載入html亂碼,可以嘗試改用:webview.loadDataWithBaseURL(null,url,"text/html","UTF-8",null);方法

Android WebView 載入HTML程式碼

<uses-permission android:name="android.permission.INTERNET" /> <?xml version="1.0" enco

載入圖片過大而導致OOM記憶體溢位的解決方法(巨坑....)

如果圖片太大會造成OOM記憶體溢位的錯誤,需要用Bitmap的壓縮機制。 如果跳轉的頁面含有圖片可能會導致跳轉失敗。 比如說我這裡是一旦觸發了某個按鍵,就修改該xml的圖片和文字說明 則setImageResource應該改成這樣imageview.setImageBitm

html混合開發之原生與js相互呼叫

原生和html的優缺點就不多說了,有些特定條件下用html頁面可以很方便,也很容易更新和維護,那麼這就涉及到html與安卓原生的互動和通訊。 接下來我要分享的是html呼叫原生的彈窗和位置資訊,安卓原生呼叫JS中的方法。 xml很簡單: <?xml version=

kotlin使開發的程式碼變得簡潔

都說kotlin是站在巨人的肩膀上(java),Kotlin 是一種在 Java 虛擬機器上執行的靜態型別程式語言,被稱之為 Android 世界的Swift,由 JetBrains 設計開發並開源。Kotlin 可以編譯成Java位元組碼,也可以編譯成 Jav

開發,關於程式碼安全的注意點,平常開發中你有沒有注意!!!

發揚分享精神,做一個快樂的開發者! 看CSDN有好長時間了,感謝那些善於分享的開發者,感謝你們 ,閱讀你們的文章,我感覺有很快的進步,我一直也想寫部落格,把自己的見解和大家分享,只是苦於不知道寫些什麼,現在機會來了,我要把我研究的一些關於程式碼安全的試題給大家

載入webView視訊頁面,退出後還有聲音

做專案的時候遇到一個問題,就是安卓用webView載入視訊的頁面,銷燬當前頁面後,還是能聽到視訊播放的聲音,以此來記錄解決問題的方案。 嘗試過在onDestroy()方法中,呼叫webView.destroy()方法,銷燬它,但是沒效果。 參考了另外方法解決的,首先說一下

TextView載入 html 程式碼,藉助Glide載入jpg or gif 等圖片格式

app載入網頁資料,可能大部分人都習慣用WebView去實現,簡單方便,但是有些時候從api返回的html資料中,是不帶html 的css樣式的,這時候html 加載出來的文字會顯示不整潔,達不到自己想要的效果,甚至文字很小,如果用WebView去顯示的話,使用

HtmlSpanner 使用小結 -- 解析html

如何利用 HtmlSpanner解析 HTML格式 的字串: 1. GitHub 下載HtmlSpanner專案 https://github.com/NightWhistler/HtmlSpanner 2. 最好是直接放在java目錄下在,這樣不需要改引用的包路徑 3.  引入需要的依賴包

APP載入HTML5頁面解決方式總結

true ide 不同 webclient devtools 先來 介紹 未來 童鞋 因為H5頁面在移動端的兼容性及擴展性方面體現出來的優勢,又兼得APP中植入H5

整理系統自帶分享和以..方式開啟的程式碼

分享檔案: intent = new Intent(Intent.ACTION_SEND); intent.setType("*/*"); intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(path));