手机支付宝中使用了什么web开发技术? 举报 理由 举报 取消 今天打开手机支付宝看到我的快递服务几乎翻新,比之前的好用多了。所以想了解下支付宝团队在支付宝手机客户端开发中使用了什么web相关的开发技术? 2018年1月5日 8 条回复 1008 次浏览 Web,开发,手机,支付,支付宝
回复 ( 8 )
「我的快递」是纯 HTML 应用,并不是用原生替代了。
支付宝钱包里面的一大半应用是用 HTML / JavaScript 开发的,其中分为在线页面和离线包两种类型。
在线页面就是再容器里面访问的手机网站。
离线包是把 HTML/CSS/JS 以及其他静态资源打包得到的压缩文件。如果你把离线包解压,里面的 HTML 是可以在本地浏览器打开的。只是由于 js 里面一般会调用钱包 API,在浏览器里面直接运行会报错。(PS: 我在开发离线包时,写了一套兼容接口,这样页面在普通浏览器里面也能正常运行了。)
如果离线包应用的功能需要升级,要改代码 – 构建并打包成离线包 – 发布。
钱包启动时会检查各个应用的版本,如果有更新,会在合适的时候下载离线包并解压。
由于离线包缺少服务器渲染,如果需要和服务器交互数据,需要调用钱包 API,钱包会通过网关和服务器发生请求。类似 AJAX。
虽然这些应用页面是 HTML 做的,但是里面的弹框、Loading、二维码扫描 啊等等都是钱包的原生功能。钱包通过 JSbridge 的方式给网页提供接口以调用这些功能。了解微信网页开发的应该都知道 WeixinJSBridge,差不多。
PS:「我的快递」这个应用主要功能是离线包,但是里面的「寄件」是在线页面。可以观察下。
前面咋有答案说 React… 支付宝内部的确有不少地方在用 React,但是钱包里面用 React 的真没见过。离线包是有体积限制的,如果用 React 什么功能不写就超过 100k 了。
补个图:
支付宝钱包目前有相当一部分的页面是用HTML5写的,而且也有一部分的native应用会有计划地逐步过渡到HTML5上去。
目前在很多机型上两者的差距已经不太明显,况且现在的HTML应用基本都会特地等待几百毫秒再切入,尽可能地消灭白屏,很多人也看不出来了。
至于用了什么技术,没什么技术,无非zepto, fastclick之类的,界面用自己开发的amui,没啥复杂的框架也没黑魔法,组里面一个人干3个人的活儿真的没心思折腾。
react。。还有什么首屏渲染。。。
离线包…… 让h5页面秒开,可以去看看花呗的页面,做的跟native没什么区别
说的挺好的。移动端的挑战已经过了拓荒时代,现在面临的挑战更多的是,每个细节的极致,貌似没啥好像高深的技术后面是对很多东西思考的结果,一个英雄js库搞定一切的时代已经过去,更多的是现有方案的选型,各层的无缝配合以及工程化的标准开发
打离线包、和native通信的bridge云云吧,反正就是hybrid开发模式。说react的应该没这个必要吧,杀猪焉用宰牛刀。
HTML5,react
把体验不好的地方慢慢都用原生来代替了