python春节集五福_集五福?用Python做点事情吧!Python集五福教程
python春节集五福_集五福?⽤Python做点事情吧!Python集
五福教程
相信⼤家今天都知道了⽀付宝集五福的活动,对于⼆次使⽤这种运营模式的⾏为我暂不做评价,毕竟⼤家都是程序员。
我这次和⼤家聊聊这块的技术点,以及如何⽤
Python 来做点事情。所有技术点到为⽌不做深究。
1、Hybrid + 缓存机制
很多⼈可能更关注怎么快速集齐五福。但若你是⼀枚程序员,有没有考虑过整个集五福的技术是如何设计的?其次这⼏个页⾯到底是不是⽤原⽣开发的,如果是原⽣为什么没有更新版本,如果不是那⼜是⽤什么开发的以及如何做到如此流畅?
答案是
Hybrid ,来灵活的完成复杂的运营活动。
Hybrid
可能有的⼈⽐较陌⽣,我在很早的⼀篇⽂章 新功能「指数」 ⼤数据、⼩程序 中也提到过这块的技术。通俗的来讲这是⼀套原⽣Native  +
动态语⾔的混合编程框架。
当然这次只提
Native +  H5 的混合开发,不涉及其他动态语⾔ Weex 、RN 之类的。
如果你是⼀名移动应⽤开发者,相信你对
双系统安装WebView 应该不陌⽣。这个 View 的内部是通过 WebKit 内核对 html 以及 js 做⼀个解析和展⽰,同时由于它是⼀个 Native 的
View,所以它与⽣俱来的必然可以和Native 进⾏交互。
再回到⽀付宝的集五福,这个页⾯就是⼀个七一演讲稿
h5  的页⾯(判断⽅式:Dump 当前页⾯发现只是⼀个 WebView 组件)。
H5
页⾯已经正常加载了,那么哪个操作会和 Native 交互?
高一数学必修1
“扫⼀扫”,因为涉及到了相机⽽这个⼜是硬件设备上的部件,所以⽆论如何这个
扫⼀扫 都会调⽤ Native 的  AR 组件去完成扫⼀扫的操作。
因此我们看到的集五福是⼀个
H5 页⾯,⽽ AR 扫⼀扫则是 Native 的页⾯。
2、WebView 和 Native 的交互
这时候问题就来了,如何实现
WebView 和 Native 的交互?
其实
WebView 在最初设计的时候就提供了⼀个 setJSInterface 接⼝⽤来设置 Native 暴露给 H5 的接⼝。但这种⽅式很难维护⽽且它会将当前
Hybrid 的接⼝都暴露给前端页⾯。
还有⼀种⽅式是通过
console.log()。
熟悉
WebView 的读者应该知道这么⼀个类WebViewChromeClient ,在这个类⾥⾯有⼀个⽅法onConsoleMessage(),这个⽅法会在 JS
调⽤ console.log 的时候被调⽤,参数则是 log 信息。中国的传统文化
所以我们可以通过格式化的
log 来完成 H5 -> Native 的数据传递,如果 Native -> H5 则可以通过注⼊⼀个 JSBridge 来完成。
3、缓存机制
如果我们要使⽤
Hybrid 的技术,那么为了提升⽤户体验缓存机制是必不可少的。这也是为什么⽀付宝的集五福不会像我们⽤打开⼀个页⾯那么慢,它⼏乎是瞬间打开。
我们可以将这个运营活动想成⼀个
H5 App,这个 H5App ⾥⾯包含了 html、js、css 这些静态资源。同时重写 WebView 的 onShouldInterceptRequest
来拦截加载的 url 返回⼀个离线的数据。
上⾯这种时序图就展⽰了下原⽣的加载和缓存机制的⼀些区别,这中间还有更多的逻辑,⽐如域名的校验、离线包的安全校验等等的。
村庄离奇消失虽说集五福是⼀个
H5 页⾯,但更确切的来说它算是⼀个 H5App ,通过加载⼀些缓存的页⾯来提升⽤户体验,以及完成更⾼效的版本维护。
4、Python 做点事情
这块就不着重讲解了,原理清楚了我相信⼤家都能做点东西出来。源码直接去我的
卡芙琳旗舰店
Github,先表明⼀点这块我没花太多精⼒去实践,所以看到源码的别回来揍我就好。
本⽂内容转载⾃⽹络,本着传播与分享的原则,来源/作者信息已在⽂章顶部表明,版权归原作者所有,如有侵权请进⾏删除!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。