小程序底层简单剖析实现-API实现

小程序底层简单剖析实现-API实现,第1张

我们发现,小程序里面大部分API都是异步接口,这根它的双线程模型有很大关系。

以下举一个标准的异步接口 showToast 。

在logic层,我们调用了 showToast 方法:

实际上这接口发到 master 层去处理的:

考虑到我们的接口都是异步回调,在 master 层处理完毕后需要通知回 logic 层:

上面我们看到了一个 msgId,这是各层间传递信息标识的唯一id,而 logic 层还需要处理回调结果,我们完善一下:

在API调用的时候,把自身的回调函数缓存起来,等收到回调的信息时,执行相应的回调,再把缓存删掉。

在一些接口上,也能提供同步的接口,比如: getStorageSync 。

这个比较好理解,因为 localStorage 无论在父级页面或者iframe中都能取到,而且本身也是一个同步方法,所以可以在 master 层和 logic 层都实现一遍。

我们还发现,小程序的 setStorage 比 web 上的 localStorage 似乎可以写入的格式多一些,还支持Date格式类型,方法是通过写入JSON来实现,参照 LocalStorage

上一篇

微信小程序想要加入全景图的话可以通过链接跳转或代码植入的方式实现。链接跳转就是在微信小程序内加入720VR全景图的链接,用户只要点击就可以进入全景图。代码植入是将720VR全景图的代码直接植入小程序代码中,用户只要打开小程序就可以在相应位置看到全景图的展示。

第65篇

极客时间《9小时搞定微信小程序开发》第五课:原生API。

小程序API最后一部分,课程中没有详细去讲,因为当时开放的API还没有现在这么多,而且这部分API偏于后台控制,大多是后期逐步新增的。

wx.getUpdateManager 获取 全局唯一 的版本更新管理器,用于管理小程序更新

UpdateManager对象用来管理更新,有强制小程序重启并使用新版本、监听小程序版本更新事件等方法。

一些异步处理的任务,可以放置于 Worker 中运行,待运行结束后,再把结果返回到小程序主线程。Worker 运行于一个单独的全局上下文与线程中,不能直接调用主线程的方法。

Worker 最大并发数量限制为 1 个,创建下一个前需要结束当前 Worker;Worker 与主线程之间的数据传输,双方使用 Worker.postMessage()来发送数据,Worker.onMessage()来接收数据,传输的数据并不是直接共享,而是被复制的。

wx.reportMonitor,自定义业务数据监控上报接口,最多可以创建128个监控事件

监听或取消监听小程序切换前后台、错误事件

wx.canIUse:判断小程序的API,回调,参数,组件等是否在当前版本可用

绘图相关的API,主要是对CanvasContent对象的使用,实现各种颜色、线条、内容填充的控制

可以用以下几种方式来表示 canvas 中使用的颜色:

RGB 颜色: 如 'rgb(255, 0, 0)'

RGBA 颜色:如 'rgba(255, 0, 0, 0.3)'

16 进制颜色: 如 '#FF0000'

预定义的颜色: 如 'red'

其中预定义颜色有148个: 自定义颜色

调试开关和日志管理器的API,console可以向调试面板打印debug\error\info\log\warn共5类日志,logmanager最多保存5M的日志内容,超过5M后,旧的日志内容会被删除。

获取第三方平台的自定义的数据字段。小程序运营者可以一键授权给第三方平台,通过第三方平台完成业务。

第三方平台有单独的说明,参见: 第三方平台

创建 map 上下文 MapContext 对象,MapContext实现以下功能

对小程序框架中的路由控制进行扩充,实现关闭页面后返回或跳转到其他页面的 *** 作。

对小程序转发功能的控制,就是小程序右上角关闭按钮旁边3个小白点里的『转发』。

获取系统信息,主要包括以下信息:

设定或取消定时器,按照指定周期或在定时到期之后执行注册的回调函数

IntersectionObserver 对象,用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见

SelectorQuery,查询节点信息的对象

小程序开发框架提供的API变得越来越多,通过这些微信原生的API,可以快速方便的调用微信的能力,比如文件的控制、图片视频的控制、数据的缓存、微信支付等,从而实现更加复杂多样的业务。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8074334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存