CanvasContext wx.createCanvasContext(string canvasId, Object this)

从基础库 2.9.0 开始,本接口停止维护,请使用 Canvas 代替

微信小程序插件:支持,需要微信小程序基础库版本不低于 1.9.6

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 旧版画布迁移指南、canvas 组件介绍

功能描述

创建 canvas 的绘图上下文 CanvasContext 对象

参数

string canvasId

要获取上下文的 canvas 组件 canvas-id 属性

Object this

在自定义组件下,当前组件实例的this,表示在这个自定义组件下查找拥有 canvas-id 的 canvas ,如果省略则不在任何自定义组件内查找

返回值

CanvasContext

OffscreenCanvaswx.createOffscreenCanvas(object object, number width, number height, Object this)

基础库 2.16.1 开始支持,低版本需做兼容处理。

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.16.1

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 画布指南、canvas 组件介绍

功能描述

创建离屏 canvas 实例

参数

object object

属性 类型 默认值 必填 说明
type string webgl 否 创建的离屏 canvas 类型
合法值 说明
webgl webgl类型上下文
2d 2d类型上下文
width number 否 画布宽度
height number 否 画布高度
compInst Component 否 在自定义组件下,当前组件实例的 this

number width

画布宽度

number height

画布高度

Object this

在自定义组件下,当前组件实例的 this

返回值

OffscreenCanvas

示例代码


  // 创建离屏 2D canvas 实例
  const canvas = wx.createOffscreenCanvas({type: '2d', width: 300, height: 150})
  // 获取 context。注意这里必须要与创建时的 type 一致
  const context = canvas.getContext('2d')

  // 创建一个图片
  const image = canvas.createImage()
  // 等待图片加载
  await new Promise(resolve => {
    image.onload = resolve
    image.src = IMAGE_URL // 要加载的图片 url
  })

  // 把图片画到离屏 canvas 上
  context.clearRect(0, 0, 300, 150)
  context.drawImage(image, 0, 0, 300, 150)

  // 获取画完后的数据
  const imgData = context.getImageData(0, 0, 300, 150)

离屏 Canvas 类型不可混用

由于 webgl canvas 和 2d canvas 的底层实现方式不同,因此必须要在调用 wx.createOffscreenCanvas 时提前指定类型。

指定类型后,离屏 canvas getContext(type) 调用不允许混用,如不能对 webgl canvas 调用 getContext('2d')。

同样的,不同类型 canvas 调用 createImage 创建的图片对象也不支持混用,使用时请注意尽量使用 canvas 自身的 createImage 创建图片对象。

与 MediaRecorder 结合

离屏 webgl canvas 支持作为参数传递给 wx.createMediaRecorder, 离屏 2d canvas 暂不支持。

旧版 createOffscreenCanvas

旧版函数签名为 wx.createOffscreenCanvas(width: number, height: number, this: object): OffscreenCanvas,从基础库 2.7.0 开始支持

从基础库 2.16.1 开始改为 wx.createOffscreenCanvas(options: object): OffscreenCanvas,向下兼容旧版入参。 但需注意旧版入参只能创建 webgl 类型,如需创建 2d 类型则必须使用新版。

wx.getCommonConfig(Object object)

基础库 2.33.0 开始支持,低版本需做兼容处理。

以 Promise 风格 调用:不支持

微信小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

功能描述

传入实验参数数组,就能获取到对应的实验参数值。

参数

Object object

属性 类型 默认值 必填 说明
keys Array.<string> 否 需要获取的数据指标的对象数组,每个 string 的格式约定为:配置类型_分表key
mode number 是 0:通用配置模式 1:实验模式,参数与返回结果的使用等同于接口 wx.getExptInfoSync
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
errcode number 错误码
errmsg string 错误信息
conf_type number 配置类型,1-表类型 2-kv类型
conf string 根据 conf_type 来确定 conf 的内容。conf_type 为 1 时,conf 是一个 json 数组,类似 “[{xxx},{xxx}]”,每一项对应表类型中每一行的配置内容;conf_type 为 2 时,conf 是一个 json 对象,类似 “{xxxx}”
expire_sec number 过期时间,单位秒。0 表示当次有效

示例代码

  wx.getCommonConfig({
      keys:["key1", "key2"],
      mode: 0,
      success: (res)=>{
        console.log("success")
        console.log(res)
      },
    fail: (res)=>{
      console.log("fail")
      console.log(res)
    }})

wx.getExptInfoSync

基础库 2.17.0 开始支持,低版本需做兼容处理。

微信小程序插件:不支持

功能描述

传入实验参数数组,就能获取对应的实验参数值

参数

Array. keys

实验参数数组,不传的话就获取所有实验参数

返回值

Object

返回结果对象,key 是传入的 keys 里的每一项,value 是对应的参数值

提示

假设实验参数有 color, size 调用 wx.getExptInfoSync() 会返回类似 {color:'#fff',size:20} 的结果 而 wx.getExptInfoSync([‘color’]) 则只会返回 {color:'#fff'}

wx.reportAnalytics(string eventName, Object data)

从基础库 2.31.1 开始,本接口停止维护,请使用 wx.reportEvent 代替

微信小程序插件:支持,需要微信小程序基础库版本不低于 1.9.6

在微信小程序插件中使用时,可以被正常调用,但目前不会进行统计展示

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

功能描述

自定义分析数据上报接口。使用前,需要在微信小程序管理后台自定义分析中新建事件,配置好事件名与字段。

参数

string eventName

事件名

Object data

上报的自定义数据,key 为配置中的字段名,value 为上报的数据。

示例代码

wx.reportAnalytics('purchase', {
  price: 120,
  color: 'red'
})

wx.reportMonitor(string name, number value)

从基础库 2.31.1 开始,本接口停止维护,请使用 wx.reportEvent 代替

基础库 2.0.1 开始支持,低版本需做兼容处理。

微信小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

功能描述

自定义业务数据监控上报接口。

参数

string name

监控ID,在「微信小程序管理后台」新建数据指标后获得

number value

上报数值,经处理后会在「微信小程序管理后台」上展示每分钟的上报总量

使用说明

使用前,需要在「微信小程序管理后台-运维中心-性能监控-业务数据监控」中新建监控事件,配置监控描述与告警类型。每一个监控事件对应唯一的监控ID,开发者最多可以创建128个监控事件。

示例代码

wx.reportMonitor('1', 1)

CacheManager.on(string eventName, function handler)

基础库 2.24.0 开始支持,低版本需做兼容处理。

微信小程序插件:不支持

相关文档: 弱网体验优化

功能描述

监听事件。

参数

string eventName

事件名

eventName 的合法值

值 说明 最低版本
request 发生 wx.request 请求,只在缓存管理器开启阶段会触发
enterWeakNetwork 进入弱网/离线状态
exitWeakNetwork 离开弱网/离线状态

function handler

事件句柄

这里 request 事件会提供 request 事件对象,用于做后续的处理;在 request 事件中需要返回一个 promise,用来生成 wx.request 请求的返回内容。 这次 request 所返回的请求结果默认不会写入缓存中。如需写入缓存,可以传入参数 request({ needUpdateCache: true })

示例代码

async function handler(evt) {
  // evt.url - 请求 url
  // evt.data - 请求参数
  // evt.method - 请求方法
  // evt.request - 原始 request 方法,返回一个 promise

  // if (evt.url === '/xxx') {
  //   // 如果有些请求仍然希望走到网络,则可以如下处理
  //   const res = await evt.request()
  //   // res 即为网络请求返回
  // }

  return new Promsie((resolve, reject) => {
    // do sth
    if (data) {
      // 这里 resolve 的 data 就会作为 wx.request 的 success 回调结果返回
      resolve(data)
    } else {
      // 这里 reject 的错误信息就会作为 wx.request 的 fail 回调结果返回
      reject('no data')
    }
  })
}
cacheManager.on('request', handler)