最近新公司接手新項(xiàng)目,信心滿滿的去了秸侣,沒想到第一天就來(lái)了個(gè)滑鐵盧存筏。。味榛。
新項(xiàng)目某個(gè)界面需要展示新聞內(nèi)容椭坚,這個(gè)新聞內(nèi)容本來(lái)應(yīng)該是 .html ,但是又因?yàn)樾侣剺?biāo)題搏色、作者及發(fā)布時(shí)間等與 .html 有差別善茎;所以后臺(tái)就將 .html (body)內(nèi)容打包成 json 返回:
這看得我是一臉懵逼。频轿。垂涯。
為了解決上述問(wèn)題烁焙,正確展示內(nèi)容,在查找一些資料以及咨詢朋友后耕赘,采用了以下解決辦法考阱。如果哪位看官有更好、更簡(jiǎn)便的解決辦法的話鞠苟,請(qǐng)不吝賜教。秽之。当娱。
解決方法:
一、將后臺(tái)返回的 json (body體)插入到字符串中考榨,這個(gè)字符串要求采用前端開發(fā)工具(本人采用webStorm)創(chuàng)建 .html 文件跨细,然后將該文件中的內(nèi)容 copy 作為字符串:
二、接下來(lái)河质,在 body 標(biāo)簽之間插入后臺(tái)返回?cái)?shù)據(jù)冀惭,并將該字符串整體寫入沙盒(以 .html 結(jié)尾),最后將文件路徑返回:
三掀鹅、最后在需要展示內(nèi)容的地方散休,通過(guò) webView 加載本地 .html 文件:
以上,能夠完美展示乐尊。戚丸。。
補(bǔ)充一:如果返回的 body 數(shù)據(jù)中含有圖片標(biāo)簽的話扔嵌,需要注意標(biāo)簽中的圖片與屏幕適配的問(wèn)題限府;以下方法來(lái)源于網(wǎng)絡(luò),可以解決圖片適配問(wèn)題:
該方法在 webView 的代理方法 -webViewDidFinishLoad: 中調(diào)用痢缎。胁勺。。
希望以上方法能解決你開發(fā)之痛
如有更好独旷、更簡(jiǎn)潔方法署穗,請(qǐng)不吝賜教。嵌洼。蛇捌。
補(bǔ)充二:如果該 webView 是作為 tableView 的 cell 的話,涉及到行高適配問(wèn)題(網(wǎng)頁(yè)加載完后需要刷新行高)
解決方法一:在 webView 的代理方法 -webViewDidFinishLoad: 中通過(guò) js語(yǔ)句 計(jì)算行高后刷新 tableView :
但是此方法有弊端:代理方法調(diào)用的時(shí)候咱台,網(wǎng)頁(yè)內(nèi)容未必加載完成络拌,最后導(dǎo)致行高計(jì)算錯(cuò)誤,不能正確展示內(nèi)容
解決方法二:監(jiān)聽 webView 的 scrollview 的 contentSize 回溺,當(dāng) contentSize 變化的時(shí)候刷新 tableView 就能得到正確的行高:
最后記状好场:一定要移除觀察者混萝,不然程序會(huì) crash
以上,Enjoy萍恕。逸嘀。。