热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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 交互?

“扫一扫”,因为涉及到了相机而这个又是硬件设备上的部件,所以无论如何这个

扫一扫 都会调用 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,先表明一点这块我没花太多精力去实践,所以看到源码的别回来揍我就好。

本文内容转载自网络,本着传播与分享的原则,来源/作者信息已在文章顶部表明,版权归原作者所有,如有侵权请联系我们进行删除!



推荐阅读
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 文章目录简介HTTP请求过程HTTP状态码含义HTTP头部信息Cookie状态管理HTTP请求方式简介HTTP协议(超文本传输协议)是用于从WWW服务 ... [详细]
  • 最近在学Python,看了不少资料、视频,对爬虫比较感兴趣,爬过了网页文字、图片、视频。文字就不说了直接从网页上去根据标签分离出来就好了。图片和视频则需要在获取到相应的链接之后取做下载。以下是图片和视 ... [详细]
  • 目录爬虫06scrapy框架1.scrapy概述安装2.基本使用3.全栈数据的爬取4.五大核心组件对象5.适当提升scrapy爬取数据的效率6.请求传参爬虫06scrapy框架1. ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • Android系统启动过程分析一、Android平台架构首先贴一张Android系统架构图方便理解整个Android架构,这可以让我们从整体上对整个启动流程有个大概认知。可以看出整 ... [详细]
  • Python爬取豆瓣数据实现过程解析
    这篇文章主要介绍了Python爬取豆瓣数据实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值, ... [详细]
  • Scrapy 爬取图片
    1.创建Scrapy项目scrapystartprojectCrawlMeiziTuscrapygenspiderMeiziTuSpiderhttps:movie.douban.c ... [详细]
author-avatar
yuhao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有