
说下问题: 现在同一个接口安卓端和 iOS 端渲染的方式不一样。因为涉及到部分 html 标签 例如 "您好,吃饭了么"吃饭需要标红加括号 我现在有几个方案 不知道各位是怎么处理的 1.返回格式自定义标签类似 bbscode Resp: { "content": "您好,color:red吃饭</color>了么",
} 服务端解析根据标签解析
2. 直接在服务端根据每个端处理好数据 安卓: Resp: { "content": "您好,<span color="red">(吃饭了么)</span>" } iOS: Resp: { "content": "您好,<span color="#ffffff">[吃饭了么]</span>" } 方式一升级了标签就很麻烦,需要对各个版本进行兼容,还是得走到方式二 方法二 服务端处理麻烦点 需要每个端都要做数据处理,但是数据好控制。 现在犹豫着是让服务端做更多事情还是让客户端做。 不知道各位有什么好的经验吗? 谢谢 1 dangyuluo Jul 27, 2016 我觉得还是让客户端去做比较好。传输的数据应该是不包括样式的。 |
2 pxllong OP 补充下:现在数据来源事来自网页端的 html ,涉及到富文本 |
3 ZGLHHH Jul 27, 2016 用"\"防止转义? 例子: <span color="#ffffff">\(吃饭了么\)</span> |
6 xenme Jul 27, 2016 via iPhone 服务端只返回数据比较好,各平台自己处理显示和平台差异部分 |
7 pxllong OP 客户端做 服务器只能返回 您好,[i][size=4][fOnt=黑体][u][b]吃饭了么?[/b][/u][/font][/size][/i] |
8 3dwelcome Jul 28, 2016 via Android 我以前也觉得数据和样式分离比较优雅、但实际操作下来、除了让前端代码更多更复杂外、并没有带来特别的好处。 现在选的话、我会选第二种。 |
9 angelface Jul 28, 2016 服务端返回基本结构,客户端加样式。 |
11 sunhr Jul 28, 2016 我是做客户端的,选第二种,理由如下: 1 、节省时间照 LZ 描述, App 这边应该是用了直接可以渲染 HTML 标签的富文本控件,那么如果 Server 返回处理好的数据, App 直接扔进去就可以了。否则的话 iOS 开发搞一遍, Android 开发再搞一遍,浪费资源,容易出错。 2 、灵活可控假设 App 已经上线,突然发现标签有 bug 或者突然有运营需求过来需要修改文字或样式,第二种方案可以分分钟搞定 现实开发中,经常会遇到类似的问题, Server 和 App 都认为应该对方去实现。拉大家一起权衡一下利弊, 80%的情况最后都交给 Server 了,毕竟移动设备的电量和流量有限= = |