开发过程中一次蛋疼的经历

作者: MonkeyLu | 来源:发表于2017-06-22 14:03 被阅读32次

最近新公司接手新项目,信心满满的去了,没想到第一天就来了个滑铁卢。。。
新项目某个界面需要展示新闻内容,这个新闻内容本来应该是 .html ,但是又因为新闻标题、作者及发布时间等与 .html 有差别;所以后台就将 .html (body)内容打包成 json 返回:


后台返回数据

这看得我是一脸懵逼。。。
为了解决上述问题,正确展示内容,在查找一些资料以及咨询朋友后,采用了以下解决办法。如果哪位看官有更好、更简便的解决办法的话,请不吝赐教。。。

解决方法:
一、将后台返回的 json (body体)插入到字符串中,这个字符串要求采用前端开发工具(本人采用webStorm)创建 .html 文件,然后将该文件中的内容 copy 作为字符串:

html 字符串

二、接下来,在 body 标签之间插入后台返回数据,并将该字符串整体写入沙盒(以 .html 结尾),最后将文件路径返回:

字符串写入文件

三、最后在需要展示内容的地方,通过 webView 加载本地 .html 文件:

加载本地 html 文件

以上,能够完美展示。。。

补充一:如果返回的 body 数据中含有图片标签的话,需要注意标签中的图片与屏幕适配的问题;以下方法来源于网络,可以解决图片适配问题:

图片适配

该方法在 webView 的代理方法 -webViewDidFinishLoad: 中调用。。。
希望以上方法能解决你开发之痛
如有更好、更简洁方法,请不吝赐教。。。

补充二:如果该 webView 是作为 tableView 的 cell 的话,涉及到行高适配问题(网页加载完后需要刷新行高)
解决方法一:在 webView 的代理方法 -webViewDidFinishLoad: 中通过 js语句 计算行高后刷新 tableView :

通过代理方法刷新行高

但是此方法有弊端:代理方法调用的时候,网页内容未必加载完成,最后导致行高计算错误,不能正确展示内容

解决方法二:监听 webView 的 scrollview 的 contentSize ,当 contentSize 变化的时候刷新 tableView 就能得到正确的行高:

监听属性 contentSize 实现监听响应方法刷新行高

最后记住:一定要移除观察者,不然程序会 crash


移除观察者

以上,Enjoy。。。

相关文章

  • 开发过程中一次蛋疼的经历

    最近新公司接手新项目,信心满满的去了,没想到第一天就来了个滑铁卢。。。新项目某个界面需要展示新闻内容,这个新闻内容...

  • 我参加了一场超级“无聊”的比赛丨国际第二届发呆大赛

    一次集体(wu)蛋(yi)疼(shi)的艺术 发呆顾名思就是“闲的蛋疼”的人,号召一群人一起“蛋疼”,并且一群更加...

  • 组织会议是“蛋疼”的经历?

    在头马国际演讲俱乐部每周都有例会,例会至少有14个角色,包括各类主持人、官员、演讲选手和点评官。为了保证例会如期举...

  • Docker for Mac 的安装

    最近准备开始搭建自己的后台服务,鉴于之前在腾讯云上的蛋疼部署经历,遂想到了使用docker来集成开发与上线环境。 ...

  • mpvue的第一个小程序模板体验

    最近我手上用mpvue基于第三方平台开发的第一个模板小程序上线了,这里我在接着唠下我在开发过程中比较蛋疼的事情,有...

  • 蛋疼

    这是一次不可思议的经历,甚至有些搞笑,还有些荒唐。 事情发生在去年的秋天,整整过去一年了。那时的我感觉身体好像出了...

  • 蛋疼

  • 只要肯努力,什么都能挣到!

    蛋疼! 真的蛋疼! 现在真的很蛋疼! 我不开玩笑! 2018年,我过的很蛋疼! 请欣赏这个视频。“只要肯努力,什么...

  • some egg ache problem

    Mention (开发中常见的一些令人蛋疼的小问题,持续更新) [NSURL URLWithString:Str]...

  • iOS iAP之自动订阅更换app账号

    最近开发过程中遇到一个比较蛋疼的问题前提:同一台手机,同一个苹果账号(沙盒测试账号)用户用a账号登录你的app 购...

网友评论

    本文标题:开发过程中一次蛋疼的经历

    本文链接:https://www.haomeiwen.com/subject/tlcfcxtx.html