-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
双11密令红包的前端技术方案 #20
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
玩法简介
今年的双11不仅买买买令人兴奋,密令红包也让人欲罢不能、抢到手软。每天,都有新鲜出炉的密令从各种渠道放出,只要打开手机淘宝,在搜索框输入密令就可以抢现金红包啦~
一年一度的红包盛事没有彩蛋怎么行呢?输入秋裤、冰箱、手机膜试试看?哎呀我的手机怎么这样了?
咳咳,双11已经结束,我们还是回归具体需求和技术实现本身吧:P
需求整理
如上所述,密令红包主要分为以下两种:
今年的双11是无线主导,我们不能满足于只做手淘中的页面,还要在更多的地方把这个玩法落地:
设计一套技术方案来满足这样的需求,并在短时间内快速实现,还是蛮有挑战的。待解决的问题主要有两个: 跨终端适配 和 玩法接入 。
跨终端适配
这个玩法几乎所有的页面都需要适配Phone、Pad和PC。使用响应式开发,一套页面适配所有端曾经是我们的梦想,但是也得回归现实。不管是从设计方面,还是技术实现方面,密令红包的PC版本都与Phone版本存在着较大的差异,针对PC和Phone做两套页面的实现是无法避免的。
对于Phone页面,我们使用寒冬 @wintercn 大大亲自设计的手机淘宝可伸缩布局方案lib.flexible。为了在工程上解决rem值转换的问题, @songsiqi 开发了px2rem工具集,gulp插件、webpack loader、postcss插件一应俱全。
PC版本是需要以模块方式提供给首页、搜索结果等页面,页面兼容旧版本IE,使用KISSY。
而对于Pad页面,之前的实践和积累都是比较缺乏的。
结合淘宝Pad、天猫Pad页面的具体情形,和密令红包本身的需求,考虑到实现的成本,最终的解决方案是: Pad页面在PC页面模块的基础上适配而来,做一些额外的样式和功能定制 。Pad页面和PC页面的不同之处在于,接入方是自己的页面,而非外部页面。
玩法接入
整个密令玩法都是基于 搜索框 来玩的。对于不同的终端,接入的方式也不同。
Phone、Pad:使用poplayer接入
Poplayer是淘宝/天猫APP的一个native组件,可以在当前native页面上覆盖一层h5页面,当poplayer页面背景为透明或半透明时,可配置用户是否能够点透至被覆盖页面。Poplayer的出现,融合了native与h5,我们得以利用h5页面快速开发、快速迭代的优势,对下方已有的native页面的交互功能进行增强。主要应用场景如下:
PC:提供KISSY模块接入外部页面
PC上的密令玩法会接入淘宝/天猫/海淘的首页、搜索结果等页面。与Phone和Pad不同的是,这次我们暴露给外部页面的是KISSY模块,而非页面。KISSY模块的依赖关系如下图所示:
接入密令红包玩法相关模块之后的搜索过程如下图所示:
最终效果展示
以C2C红包为例:
Phone效果:
Pad效果:
PC效果:
小结
就这样, 搜索被我们玩坏了!!!
这些玩法和一个个对应的技术点,拆开来看似乎不是很特别,但是作为整套解决方案,把一路的探索过程和踩过的坑梳理清楚并沉淀下来,还是很有意义的。
The text was updated successfully, but these errors were encountered: