欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 小程序SDK简介

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:504

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

小程序SDK简介

发布时间:2020-11-17  
前言

这篇文章主要是对小程序官方文档做部分深入解读;让大家了解小程序实现背后的机制原理。

由于笔者没有获取到微信官方提供的小程序实现原理图,很多内容都是通过阅读文档资料反推和理解所得,如有误解之处,望指正。

本文建议阅读时间: 5min

目录

小程序SDK

定义

JS-SDK

小程序基础库与JS-SDK的共同点

小程序基础库与JS-SDK的不同点

小程序基础库查看方法

小程序基础库与客户端之间的关系

小程序基础库更新机制

微信版本分布

微信版本和基础库版本

开发者工具切换基础库版本

wx 对象

JsBridge

webview与客户端的关系

两种 JsBridge 实现思路

微信关于 JsBridge 的实现

通信机制

架构介绍

执行环境

事件

生命周期事件

UI事件

Page.prototype.setData

总结

小程序SDK

官方文档称其为“基础库”。

这是一个很宽泛的名词,只是觉得很重要,但说不好它具体有什么作用。我总结了 小程序5月带给我的惊喜 ,它支持的功能也越来越丰富,体验也越变越好,而这些动作如果用专业一点的术语概括就是“升级基础库”。

微信从开放内测到现在,微信基础库已经从的 v1.0.0 升级到了 v1.3.0 。

那么,“基础库”到底是什么东西?

小程序基础库提供丰富的微信原生API,可以方便的调起微信提供的能力,如获取用户信息,本地存储,支付功能等。

这是官方对于“基础库”的定义。我们知道小程序的开发十分类似于现在的移动web开发,而移动web能使用到手机系统功能,app特色功能是非常有限的,而“基础库”的作用就是为了拓展小程序这方面能力,让其功能与表现更接近原生app。

JS-SDK

我们发现“基础库”的功能和微信的 JS-SDK 十分类似,顺便再回顾下微信 JS-SDK 又是做什么的呢?

微信 JS-SDK 是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。通过使用微信 JS-SDK ,网页开发者可借助微信高效地使用拍照、选取图片、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特色功能,为微信用户提供更优质的网页体验。

小程序基础库与JS-SDK的共同点

为当前应用调起手机系统能力和微信能力;

都需要基础库的支持;

小程序基础库与JS-SDK的不同点

支持的API:小程序基础库对系统能力和微信能力做了更全面的封装,包括网络请求、存储等,而网页版JS-SDK相应的功能直接调用 window 能力;

引入方式:小程序基础库直接集成到微信的不同版本中,JS-SDK是以一个js文件的形式被引入项目里;

小程序基础库查看方法

官方API : getSystemInfo 、 getSystemInfoSync 。

wx.getSystemInfo({ success: function(obj) { obj = obj || {}; console.log('SDKVersion: ', obj.SDKVersion); }, fail: function() { console.error('[error]: getSystemInfo failed.'); } });

返回对象中 SDKVersion 的值就是该微信版本携带的小程序基础库的版本号。

注意:该属性在小程序版本 v1.1.0 才开始支持。

小程序基础库与客户端之间的关系

小程序的能力需要微信客户端来支撑,每一个基础库都只能在对应的客户端版本上运行,高版本的基础库无法兼容低版本的微信客户端。

官方的这种说法存在一些问题。现在基础库版本和客户端版本并不是一一对应关系。客户端可以主动升级小程序基础库版本达到灰度上线新版的目的,所以必然存在一个客户端版本对应多个基础库版本的情况。

小程序基础库更新时机

为了避免新版本的基础库给线上小程序带来未知的影响,微信客户端都是携带 上一个稳定版 的基础库发布的。

在新版本客户端发布后,我们再通过后台灰度新版本基础库,灰度时长一般为 12 小时,在灰度结束后,用户设备上才会有新版本的基础库。

以微信 6.5.8 为例,客户端在发布时携带的是 1.1.1 基础库(6.5.7上已全量的稳定版)发布,在 6.5.8 发布后,我们再通过后台灰度 1.2.0 基础库。

笔者使用的IOS设备更新到v6.5.8时对应的 SDKVersion 是 1.2.0, 但截止发稿日,该值已经变成了 1.2.4。

“细思恐极”,如果我们已经完成一台装有 6.5.4 版本微信的Oppo手机对小程序的兼容测试,很有可能过几天这台Oppo手机将小程序基础库更新到新版本导致小程序不可用。

本文标签

: