微信小程序之原生API(下)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序之原生API(下)相关的知识,希望对你有一定的参考价值。

参考技术A

第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,可以快速方便的调用微信的能力,比如文件的控制、图片视频的控制、数据的缓存、微信支付等,从而实现更加复杂多样的业务。

微信小程序入门-指南针

微信小程序提供了众多的原生API接口,利用罗盘接口,做了个简单的指南针小程序,搜索小程序【X的实验室】可看效果。

技术分享图片

实现方案

利用罗盘接口返回的【数据】,转化为指南针偏移量【度数】,利用CSS3 transform的rotate属性进行2d旋转,旋转量与之双向数据绑定。

核心代码片段

<view class=‘m-compass‘>
    <image class=‘m-compassbg‘ src=‘img/bg.png‘ style=‘transform:rotate({{rotate}}deg);‘></image>
</view>
onLoad: function () {
    var m-this = this;
    wx.onCompassChange(function (res) {
      m-this.setData({
        // 计算应偏移度数
        rotate: 360 - res.direction.toFixed(0)
      })
    });
}

优点

即用即走,不需下载安装(相对的),可断网使用

不足

API返回的数据不稳定,手机静止状态,罗盘度数一直浮动,范围跨度比较大,导致体验不够流畅;系统自带罗盘数据就很稳定。

改进方向

可以增加过渡效果、指针移动速率固定、单次范围固定1deg。

文中内容多为原创,若有侵权,请联系核实删除,转载请注明出处
周明杰


以上是关于微信小程序之原生API(下)的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序之九宫格布局方案

微信小程序都有哪些接口

微信小程序原生工程转uni-app工程

微信小程序入门之构建一个简单TODOS应用

微信小程序原生开发简介

微信小程序之动态获取元素宽高