? ? ? ? 最近做了一個項(xiàng)目协怒,有個需求是加載本地html頁面啥箭,后臺給的資源包含了圖片文件夾怀浆、js頁面以及html頁面扬蕊。剛開始做的時候我覺得很簡單搀别,認(rèn)為只要用UIWebView加載html字符串就可以了狐蜕,結(jié)果試了很多種辦法南蓬,圖片就是一直顯示不出來。查了很多資料沙合,都是說圖片的路徑不對再愈,然后按著度娘的方法去修改榜苫,結(jié)果還是一樣。
? ? ? ? 在這里說明一下圖片加載不出來的原因:因?yàn)槲夷貌坏綀D片文件夾的絕對路徑翎冲,只能拿到具體某張圖片的相對路徑(解釋一下垂睬,在Xcode中,所有的資源文件夾都是虛擬的抗悍,只是相對于Xcode存在驹饺,但實(shí)際上是不存在的,所以在項(xiàng)目里是無法獲取到某個文件夾的絕對路徑的)缴渊,但是在html頁面里的圖片路徑寫的是文件夾的絕對路徑赏壹,所以當(dāng)UIWebView加載html頁面時,找不到html頁面里所指的圖片文件夾資源衔沼,故而圖片顯示不出來蝌借。
? ? ? ? 基于這個思路,我就想試著更改html頁面的圖片路徑看看效果指蚁,結(jié)果試了很多種方法還是不行菩佑,最后都要放棄了。我知道是圖片路徑的問題導(dǎo)致圖片不顯示凝化,但就是想不出辦法去獲取文件夾的絕對路徑稍坯,我思考了一個星期都不得要領(lǐng),最后問了一下同做該項(xiàng)目的安卓同事缘圈,終于完美的解決了這個讓我頭痛許久的問題劣光。具體的解決思路是:將資源壓縮添加到項(xiàng)目中,然后拷貝到沙盒目錄里糟把,項(xiàng)目啟動后解壓資源壓縮包绢涡,并將存到沙盒目錄的文件夾路徑作為UIWebView的baseURL,這樣圖片的絕對路徑就可以獲取到了遣疯。
? ? ? ? 在這里解壓資源包我用的是SSZipArchive這個三方庫雄可,解壓只需要調(diào)用它的方法并設(shè)置代理即可凿傅,其他什么都不用做,非常簡單方便数苫。但是值得注意的是聪舒,我們解壓成功之后,應(yīng)該將沙盒里的資源包刪除虐急,否則每次運(yùn)行項(xiàng)目都會解壓一遍箱残,容易造成內(nèi)存的浪費(fèi),且效率不高止吁。