探讨Discuz论坛独立App产品方案

作者: 唐杰 分类: 产品设计 发布时间: 2016-01-29 03:15

前几年业余时间基于Discuz构建了两个垂直电商领域的小社区,另外还开发了很多不错的购物小工具,很吸引用户,所以活跃度很高,积累了几十万的用户了,甚至在高峰时期日活也能达到几十万PV,但是最近一年没有怎么打理了,再加上移动互联网越来越的占有用户的时间,所以活跃度也在开始下滑。最近有一些空闲时间了,也想再收拾收拾这两个项目,所以准备开发一个手机App,毕竟电商用户的价值比一般产品的用户价值要大很多。

于是看了一圈基于Discuz社区的移动产品,其中“锤子科技论坛”的体验是我最喜欢的一种,但是在网络上没有找到相关的文献,所以前几天在微信公众号推送了一条求助信息,想向大家请教一下有没有比较好的产品方案。内容如下:

锤子科技论坛是基于Discuz搭建的,配套的论坛App也很好用,不知道这个App是自己开发的,还是说有开源的解决方案?我也有一个基于Discuz的产品,想弄个App,同时再在社区App的基础上开发其他功能,谁有方案推荐呢?

我本意是想找找有没有现成的API方案,毕竟我规划的App中除了社区之外,我想主推的功能与服务不是社区,Discuz只是其中一个单独的模块。我设想的把社区的原有体系平稳的迁移到App就可以,然后慢慢的培养用户使用我基于App场景开发出来的全新功能,慢慢过度到一个全新的使用场景中。

我非常喜欢开源程序,几乎市面上所有开源程序我都用过,所以我对开源程序的那套机制很熟悉,Discuz我也使用十年了,被腾讯收购后,慢慢也不更新了,现在团队也解散了,所以近几年移动互联网起来之后,在这方面就没有人发力了,所以基于Discuz的移动App端解决方案很少。大家的反馈都比较偏向于一键生成Discuz App,但是实际上我想要的是一个偏向于技术层面的API方案,因为除了社区,我的App本身还有其他功能,采用一键生成虽然很简单,但是我就失去了App的自主开发权限。

Discuz的API难点主要是帖子和回复信息的展示,因为帖子在Discuz中是以UBB格式存储的,但是原生App是没有那么多富媒体展示形式的,所以后来我又和团队技术探讨了一下,大致要求就是能够做到“锤子科技论坛”的体验就可以,最终研究了一个试验性的方案。

先对Discuz帖子内容做一个转化,把UBB转换成html格式,在转换过程中抽取附件数据(主要是图片和视频)并使用指定标记替换。处理完毕的数据(JSON)格式大体如下:

{
"topic_name": "帖子标题",
"page_total": "分页总数",
"page": 1,
"floors": {
"1": {
"body": "帖子内容",
"imgs": [
{
"ref": "<!--IMG#0-->",
"pixel": "608*225",
"alt": "",
"src": "https://tangjie.me/media/2016/1/card.jpg"
},
{
"ref": "<!--IMG#1-->",
"pixel": "356*201",
"alt": "",
"src": "https://tangjie.me/media/2016/1/card.jpg"
}
],
"user": "用户信息",
"floor": "楼层信息"
}
}
}

客户端获取数据后,使用客户端内置的html模版对获取的数据进行拼接,之后使用webView进行展示,这样既兼顾了社区富媒体的展示需求,又可借助JS与OC/Swift/Java的桥接,实现原生的交互体验(图片浏览,异步数据获取等)。

基于这个方案,我研究和收集的技术材料如下:

(1)如何在webView中实现原生的图片点击浏览:数据拼接时,使用JS在html的图片上添加点击事件,回调到OC/Swift/Java,之后进行展示处理。

(2)如何优雅的翻页:为页码添加点击事件,回调后使用原生代码处理:加载分页数据,之后数据再次拼接后刷新(亦可做刷新动画特效)

(3)JSBridge收集如下:
OC https://github.com/jianpx/JPXUIWebViewJSBridge
Java https://github.com/lzyzsd/JsBridge
Swift https://github.com/alexkunitsa/SwiftJSBridge

以上方案就是我目前确定的一个试验性方案,如果大家有更好的方案,不防也可以在微信中给我留言,我们一起再探讨。

这套方案就是我在《杰出产品经理书》和《杰出产品经理课》中提到的产品形态层面的知识,它是一个B/S和C/S结合的产品形态,像“网易新闻”、“微信公众号”都是两种形态的相互融合。

因为一位朋友在微信后台给我留言说找到方案了记得分享一下,所以我就分享出来了。当然,产品经理不一定非要懂这些技术知识,懂得技术实现原理就可以了,至少在和技术沟通方案时,不至于一无所知。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

3 条评论
  • Locksmith

    2023年8月7日 01:06

    謝謝分享

  • 2016年4月27日 19:35

    还有就是最后的产品是否出来了??能否透露一下APP的名字,我去研究下,谢谢!

  • 2016年4月27日 19:33

    请问唐老师,最后的解决方案是怎样的呢?
    还有就是用户同步这一块最后是怎么弄的?

回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注