[关闭]
@wwanghee 2016-04-01T08:17:20.000000Z 字数 1086 阅读 548

【腾讯项目】个性化同IP推荐项目—开发篇


一、背景

个性化同IP推荐项目是一个系列型项目,加强个性化商城装扮之间的联系,凝聚大IP,形成协同效应。

二、后端接口

对于每个接入IP推荐的业务来说,调用的接口都是同一个,具体接口参考后台接口文档:

http://tapd.oa.com/qqclub_app/markdown_wikis/#1010018751005179627

主要注意需要传appId和itemId。

后端约定的APPID映射为:

  1. 表情:1
  2. 气泡:2
  3. 主题:3
  4. 挂件:4
  5. 字体:5
  6. 背景:8

三、前端数据结构

对于前端而言,后端返回的数据结构并不完全符合我们的要求,需要进行一定的加工,每个业务接入基本上都是类似的结构。加工后的数据结构如下所示:

QQ20160322-0.png-334.2kB

结构暂定为此结构,当然也要根据产品对于各个商城的需求来变化,大体思路是沿用的。

四、表情下载通用化

表情下载按钮的逻辑每个业务都需要,目前可以进行下载逻辑的抽离,我这边所期望的调用形式为:

  1. var bqDownload = new component('BqDownload');
  2. bqDownload.create(elementContainer, bqDetailList);

UI部分根据目前对于产品规划的了解,全商城关于表情下载这块的UI应该是统一的。所以还是尽量将渲染,鉴权,下载等逻辑封装起来,对于调用方传入一些必要的参数即可正常使用此功能。

五、开发过程中的一些小tips

1、step.js有做try-catch,所以调试的时候出错找不到问题在哪,建议去掉step.js中的try-catch,有问题提早暴露

2、模板中的HTML注释<!-- -->,如果注释中有执行代码的话,在编译过程中会出现XSS漏洞。结论就是在注释中不要出现JS的代码。因为模板在webstorm中的默认注释就是<!-- -->,如果不注意的话,注释模板中的代码,代码还是会执行的

3、对象克隆

有时候会遇到对象引用的坑,一般保险起见用对象克隆来避免,对象克隆简单的处理是JSON.parse和JSON.stringify,复杂一点的处理则借助jquery等库,使用$.extend方法。

4、跳转其它商城最好用短链的形式,因为短链使用qt.utils.openPage会带一些终端参数,主题必须使用短链跳转的形式

5、专区类型的个性化装扮的逻辑特殊,暂时还不支持同IP推荐的展示,缺少角标,缺少表情下载的逻辑

6、不同业务的feeType的值含义不同,这个比较坑,希望其它同学在使用时也注意此问题,希望xydata2.0可以统一

7、webview全屏化,有特殊逻辑处理,完成后统一汇报

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注