当前位置: 首页 > 工具软件 > of-weixin-api > 使用案例 >

微信开发之API

夹谷沛
2023-12-01

基础

  1. wx.env:环境变量,文件系统中的目录路径(本地路径)
  2. wx.canIUse(string schema):判断小程序的API,回调,参数,组件等是否子在当前版本可用
  • 参数:使用${API}.${method}.${param}.${option} 或者 ${component}.${attribute}.${option} 方式来调用
  • ${API} 代表 API 名字 ${method} 代表调用方式,有效值为return, success, object, callback ${param} 代表参数或者返回值 ${option} 代表参数的可选值或者返回值的属性 ${component} 代表组件名字 ${attribute} 代表组件属性 ${option} 代表组件属性的可选值
  • 返回值:boolean
  1. wx.base64ToArrayBuffer(string base64):将Base64字符串转成ArrayBuffer对象
  • 参数:要转化成ArrayBuffer对象的Base64字符串
  • ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。它是一个字节数组,通常在其他语言中称为“byte array”。 你不能直接操作 ArrayBuffer 的内容,而是要通过类型数组对象或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。

https://www.cnblogs.com/copperhaze/p/6149041.html
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer

  • Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。

https://baike.baidu.com/item/base64/8545775?fr=aladdin

  • 返回值:ArrayBuffer 对象
const base64 = 'CxYh'
const arrayBuffer = wx.base64ToArrayBuffer(base64)
  1. wx.arrayBufferToBase64(ArrayBuffer arrayBuffer):将ArrayBuffer 对象转成 Base64 字符串
  • 参数:ArrayBuffer arrayBuffer
  • 返回值:Base64 字符串
const arrayBuffer = new Uint8Array([11, 22, 33])
const base64 = wx.arrayBufferToBase64(arrayBuffer)

系统

  1. wx.getSystemInfo(Object object):获取系统信息。由于历史原因,wx.getSystemInfo 是异步的调用格式,但是是同步返回,需要异步获取系统信息请使用 wx.getSystemInfoAsync
  • 同步版本:wx.getSystemInfoSync()
  1. wx.getSystemInfoAsync(Object object):异步获取系统信息。需要一定的微信客户端版本支持,在不支持的客户端上,会使用同步实现来返回。

更新

  1. wx.updateWeChatApp(Object object):更新客户端版本,当判断用户小程序所在客户端版本过低时,可使用该接口跳转到更新微信页面
  2. wx.getUpdateManager():获取全局唯一的版本更新管理器,用于管理小程序更新
  • 返回值:更新管理器对象
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
  // 请求完新版本信息的回调
  console.log(res.hasUpdate)
})
updateManager.onUpdateReady(function () {
  wx.showModal({
    title: '更新提示',
    content: '新版本已经准备好,是否重启应用?',
    success: function (res) {
      if (res.confirm) {
        // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
        updateManager.applyUpdate()
      }
    }
  })
})
updateManager.onUpdateFailed(function () {
  // 新版本下载失败
})
【方法】
UpdateManager.applyUpdate()
强制小程序重启并使用新版本。在小程序新版本下载完成后(即收到 onUpdateReady 回调)调用。
UpdateManager.onCheckForUpdate(function callback)
监听向微信后台请求检查更新结果事件。微信在小程序冷启动时自动检查更新,不需由开发者主动触发。
UpdateManager.onUpdateReady(function callback)
监听小程序有版本更新事件。客户端主动触发下载(无需开发者触发),下载成功后回调
UpdateManager.onUpdateFailed(function callback)
监听小程序更新失败事件。小程序有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)后回调

小程序生命周期

  1. wx.getLaunchOptionsSync():获取小程序启动时的参数,与 App.onLaunch 的回调参数一致
  2. wx.getEnterOptionsSync() :获取本次小程序启动时的参数。如果当前是冷启动,则返回值与 App.onLaunch 的回调参数一致;如果当前是热启动,则返回值与 App.onShow 一致

小程序应用级事件

  1. wx.onUnhandledRejection(function callback):监听未处理的Promise拒绝事件,该事件与App.onUnhandledRejection 的回调时机与参数一致。
  • 参数:未处理的Promise拒绝事件的回调函数
  • 所有的 unhandledRejection 都可以被这一监听捕获,但只有 Error 类型的才会在小程序后台触发报警
  1. wx.offUnhandledRejection(function callback):取消监听未处理的Promise事件
  • 参数:未处理的Promise拒绝事件的回调函数
  1. wx.onThemeChange(function callback):监听系统主题改变事件,该事件与 App.onThemeChange 的回调时机一致。
  • 参数:未处理的Promise拒绝事件的回调函数
  • 只有在全局配置”darkmode“:true时才会触发此事件
  1. wx.onPageNotFound(function callback):监听小程序要打开的页面不存在事件,该事件与 App.onPageNotFound 的回调时机一致。
  • 参数:小程序要打开的页面不存在事件的回调函数
  • 开发者可以在回调中进行页面重定向,但必须在回调中同步处理,异步处理(例如 setTimeout 异步执行)无效;若开发者没有调用 wx.onPageNotFound 绑定监听,也没有声明 App.onPageNotFound,当跳转页面不存在时,将推入微信客户端原生的页面不存在提示页面;如果回调中又重定向到另一个不存在的页面,将推入微信客户端原生的页面不存在提示页面,并且不再第二次回调
  1. wx.offPageNotFound(function callback):取消监听小程序要打开的页面不存在事件

  2. wx.onError(function callback):监听小程序错误事件,如脚本错误或API调用报错等,该事件与 App.onError 的回调时机与参数一致

  • 参数:小程序错误事件的回调函数(错误信息,包含堆栈)
  1. wx.offError(function callback):取消监听小程序错误事件

  2. wx.onAudioInterruptionEnd(function callback):监听音频中断结束事件,在收到onAudioInterruptionBegin事件之后,小程序内所有音频会暂停,收到此事件粥才可再次播放成功

  • 参数:音频中断结束事件的回调函数
  1. wx.offAudioInterruptionEnd(function callback):取消监听音频中断结束事件

  2. wx.onAudioInterruptionBegin(function callback):监听音频因为受到系统占用而被中断开始事件,以下场景会触发此事件,如闹钟、电话、FaceTime通话、微信语音聊天、微信视频聊天。此事件触发后,小程序内所有音频会暂停

  • 参数:音频因为受到系统占用而被中断开始事件的回调函数
  1. wx.offAudioInterruptionBegin(function callback):取消监听音频因为受到系统占用而被中断开始事件

  2. wx.onAppShow(function callback):监听小程序切前台事件,该事件与 App.onShow 的回调参数一致

  • 部分版本在无referrerInfo的时候会返回 undefined,建议使用 options.referrerInfo && options.referrerInfo.appId 进行判断
  1. wx.offAppShow(function callback):取消监听小程序切前台事件

  2. wx.onAppHide(function callback):监听小程序切后台事件,该事件与App.onHide的回调时机一致。

  3. wx.offAppHide(function callback):取消监听小程序切后台事件

小程序调试

  1. wx.setEnableDebug(Object object):设置是否打开调试开关,此开关对正式版也能生效
  • 在正式版打开调试还有一种方法,就是先在开发版或体验版打开调试,再切到正式版就能看到vConsole
// 打开调试
wx.setEnableDebug({
  enableDebug: true
})

// 关闭调试
wx.setEnableDebug({
  enableDebug: false
})
  1. wx.getRealtimeLogManager():获取实时日志管理器对象
  • 开发者可从小程序管理后台“开发->运维中心->实时日志”进入小程序端日志查询页面,或从“小程序插件->实时日志”进入插件端日志查询页面,进而查看开发者打印的日志信息。
  • 返回值:RealtimeLogManager
// 小程序端
const logger = wx.getRealtimeLogManager()
logger.info({str: 'hello world'}, 'info log', 100, [1, 2, 3])
logger.error({str: 'hello world'}, 'error log', 100, [1, 2, 3])
logger.warn({str: 'hello world'}, 'warn log', 100, [1, 2, 3])

// 插件端,基础库 2.16.0 版本后支持,只允许采用 key-value 的新格式上报
const logManager = wx.getRealtimeLogManager()
const logger = logManager.tag('plugin-log1')
logger.info('key1', 'value1')
logger.error('key2', {str: 'value2'})
logger.warn('key3', 'value3')
【方法】
RealtimeLogManager.info()
写 info 日志,暂不支持在插件使用
RealtimeLogManager.warn()
写 warn 日志,暂不支持在插件使用
RealtimeLogManager.error()
写 error 日志,暂不支持在插件使用
RealtimeLogManager.setFilterMsg(string msg)
设置过滤关键字,暂不支持在插件使用
RealtimeLogManager.addFilterMsg(string msg)
添加过滤关键字,暂不支持在插件使用
  1. wx.getLogManager(Object object):获取日志管理器对象
  • 返回值:LogManager
  • 最多保存5M的日志内容,超过5M后,旧的日志内容会被删除;对于小程序,用户可以通过使用 button 组件的 open-type=“feedback” 来上传打印的日志;对于小游戏,用户可以通过使用 wx.createFeedbackButton 来创建上传打印的日志的按钮;开发者可以通过小程序管理后台左侧菜单“反馈管理”页面查看相关打印日志;基础库默认会把 App、Page 的生命周期函数和 wx 命名空间下的函数调用写入日志
【方法】
LogManager.debug()
写 debug 日志
LogManager.info()
写 info 日志
LogManager.log()
写 log 日志
LogManager.warn()
写 warn 日志
  1. RealtimeTagLogManager:给定标签的实时日志管理器实例,可以通过 RealtimeLogManager.tag 接口获取,目前只支持在插件使用
  • RealtimeTagLogManager 功能和 RealtimeLogManager 相似,但是为了让输出的实时日志更易于分析,其具有更严格的格式要求;RealtimeTagLogManager 使用时需要传入标签,调用该实例所输出的日志均会被汇集到对应标签下,同时该实例的日志只支持 key-value 格式进行输出
【方法】
RealtimeTagLogManager.info(string key, Object|Array.<any>|number|string value)
写 info 日志
RealtimeTagLogManager.warn(string key, Object|Array.<any>|number|string value)
写 warn 日志
RealtimeTagLogManager.error(string key, Object|Array.<any>|number|string value)
写 error 日志
RealtimeTagLogManager.setFilterMsg(string msg)
设置过滤关键字
RealtimeTagLogManager.addFilterMsg(string msg)
添加过滤关键字

小程序路由

  1. wx.switchTab(Object object):跳转到tabbar页面,并关闭其他所有非tabbar页面
  2. wx.reLaunch(Object object):关闭所有页面,打开到应用内的某个页面
  3. wx.redirectTo(Object object):关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面
  4. wx.navigateTo(Object object):保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层
  • 参数:
    url,需要跳转的应用内非 tabBar 的页面的路径 (代码包路径), 路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 ‘path?key=value&key2=value2’;
    events,对象,页面间通信接口,用于监听被打开页面发送到当前页面的数据。基础库 2.7.3 开始支持(成功回调函数参数为eventChannel,类型为EventChannel,作用是被打开页面进行通信)
wx.navigateTo({
  url: 'test?id=1',
  events: {
    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
    acceptDataFromOpenedPage: function(data) {
      console.log(data)
    },
    someEvent: function(data) {
      console.log(data)
    }
    ...
  },
  success: function(res) {
    // 通过eventChannel向被打开页面传送数据
    res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
  }
})
//test.js
Page({
  onLoad: function(option){
    console.log(option.query)
    const eventChannel = this.getOpenerEventChannel()
    eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'});
    eventChannel.emit('someEvent', {data: 'test'});
    // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
    eventChannel.on('acceptDataFromOpenerPage', function(data) {
      console.log(data)
    })
  }
})
【方法】
EventChannel.emit(string eventName, any args)
触发一个事件
EventChannel.on(string eventName, EventCallback fn)
持续监听一个事件
EventChannel.once(string eventName, EventCallback fn)
监听一个事件一次,触发后失效
EventChannel.off(string eventName, EventCallback fn)
取消监听一个事件。给出第二个参数时,只取消给出的监听函数,否则取消所有监听函数
  1. wx.navigateBack(Object object):关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层
  • 参数:delta,number型,默认值为1,返回的页面数,如果 delta 大于现有页面数,则返回到首页
// 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会
// 此处是A页面
wx.navigateTo({
  url: 'B?id=1'
})
// 此处是B页面
wx.navigateTo({
  url: 'C?id=1'
})
// 在C页面内 navigateBack,将返回A页面
wx.navigateBack({
  delta: 2
})

小程序界面

  1. wx.showActionSheet(Object object):显示操作菜单
  2. wx.enableAlertBeforeUnload(Object object):开启小程序页面返回询问对话框
  3. wx.disableAlertBeforeUnload(Object object):关闭小程序页面返回询问对话框
  4. wx.showNavigationBarLoading(Object object):在当前页面显示导航条加载动画
  5. wx.setNavigationBarTitle(Object object):动态设置当前页面的标题
  6. wx.setNavigationBarColor(Object object):设置页面导航条颜色
  7. wx.showTabBarRedDot(Object object):显示 tabBar 某一项的右上角的红点
  8. wx.setTabBarStyle(Object object):动态设置 tabBar 的整体样式
wx.setTabBarStyle({
  color: '#FF0000',
  selectedColor: '#00FF00',
  backgroundColor: '#0000FF',
  borderStyle: 'white'
})
  1. wx.setTabBarItem(Object object):动态设置 tabBar 某一项的内容,2.7.0 起图片支持临时文件和网络文件
wx.setTabBarItem({
  index: 0,
  text: 'text',
  iconPath: '/path/to/iconPath',
  selectedIconPath: '/path/to/selectedIconPath'
})
  1. wx.setTabBarBadge(Object object):为 tabBar 某一项的右上角添加文本
wx.setTabBarBadge({
  index: 0,
  text: '1'
})
  1. wx.removeTabBarBadge(Object object):移除 tabBar 某一项右上角的文本
  2. wx.stopPullDownRefresh(Object object):停止当前页面下拉刷新
  3. wx.startPullDownRefresh(Object object):开始下拉刷新。调用后触发下拉刷新动画,效果与用户手动下拉刷新一致
  4. wx.pageScrollTo(Object object):将页面滚动到目标位置,支持选择器和滚动距离两种方式定位
  • 参数:selector,string,选择器
selector类似于 CSS 的选择器,但仅支持下列语法:
ID选择器:#the-id
class选择器(可以连续指定多个):.a-class.another-class
子元素选择器:.the-parent > .the-child
后代选择器:.the-ancestor .the-descendant
跨自定义组件的后代选择器:.the-ancestor >>> .the-descendant
多选择器的并集:#a-node, .some-other-nodes
wx.pageScrollTo({
  scrollTop: 0,
  duration: 300
})
  1. ScrollViewContext:增强 ScrollView 实例,可通过 wx.createSelectorQuery 的 NodesRef.node 方法获取。 仅在 scroll-view 组件开启 enhanced 属性后生效
【属性】
boolean scrollEnabled
滚动开关
boolean bounces
设置滚动边界弹性 (仅在 iOS 下生效)
boolean showScrollbar
设置是否显示滚动条
boolean pagingEnabled
分页滑动开关
boolean fastDeceleration
设置滚动减速速率
boolean decelerationDisabled
取消滚动惯性 (仅在 iOS 下生效)

【方法】
ScrollViewContext.scrollTo(Object object)
滚动至指定位置
ScrollViewContext.scrollIntoView(string selector)
滚动至指定位置
wx.createSelectorQuery()
  .select('#scrollview')
  .node()
  .exec((res) => {
    const scrollView = res[0].node;
    scrollView.scrollEnabled = false;
  })
  1. wx.setTopBarText(Object object):动态设置置顶栏文字内容。只有当前小程序被置顶时能生效,如果当前小程序没有被置顶,也能调用成功,但是不会立即生效,只有在用户将这个小程序置顶后才换上设置的文字内容;调用成功后,需间隔 5s 才能再次调用此接口,如果在 5s 内再次调用此接口,会回调 fail,errMsg:“setTopBarText: fail invoke too frequently”
  2. wx.setWindowSize(Object object):设置窗口大小,该接口仅适用于 PC 平台,使用细则请参见指南
  3. wx.onWindowResize(function callback):监听窗口尺寸变化事件
  • 参数:窗口尺寸变化事件的回调函数
  1. wx.offWindowResize(function callback):取消监听窗口尺寸变化事件

小程序网络

  1. wx.request(Object object):发起 HTTPS 网络请求
  • 参数:
    | url | string | 开发者服务器接口地址
    | data | string/object/ArrayBuffer | 请求的参数
    | header | Object | 设置请求的 header,header 中不能设置 Referer。
    content-type 默认为 application/json
    | timeout | number | 超时时间,单位为毫秒
    | method | string | 默认GET | HTTP 请求方法
    | | |
wx.request({
  url: 'example.php', //仅为示例,并非真实的接口地址
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' // 默认值
  },
  success (res) {
    console.log(res.data)
  }
})
  1. wx.downloadFile(Object object):下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径 (本地路径),单次下载允许的最大文件为 200MB
    -object.success 回调函数参数:
  • tempFilePath,string,临时文件路径 (本地路径)。没传入 filePath 指定文件存储路径时会返回,下载后的文件会存储到一个临时文件
  • filePath,string,用户文件路径 (本地路径)。传入 filePath 时会返回,跟传入的 filePath 一致
  • statusCode,number,开发者服务器返回的 HTTP 状态码
  • profile,Object,网络请求过程中一些调试信息
  • 返回值:DownloadTask,一个可以监听下载进度变化事件和取消下载的对象
wx.downloadFile({
  url: 'https://example.com/audio/123', //仅为示例,并非真实的资源
  success (res) {
    // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
    if (res.statusCode === 200) {
      wx.playVoice({
        filePath: res.tempFilePath
      })
    }
  }
})
【方法】
DownloadTask.abort()
中断下载任务
DownloadTask.onProgressUpdate(function callback)
监听下载进度变化事件
DownloadTask.offProgressUpdate(function callback)
取消监听下载进度变化事件
DownloadTask.onHeadersReceived(function callback)
监听 HTTP Response Header 事件。会比请求完成事件更早
DownloadTask.offHeadersReceived(function callback)
取消监听 HTTP Response Header 事件
const downloadTask = wx.downloadFile({
  url: 'http://example.com/audio/123', //仅为示例,并非真实的资源
  success (res) {
    wx.playVoice({
      filePath: res.tempFilePath
    })
  }
})

downloadTask.onProgressUpdate((res) => {
  console.log('下载进度', res.progress)
  console.log('已经下载的数据长度', res.totalBytesWritten)
  console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
})

downloadTask.abort() // 取消下载任务
  1. wx.uploadFile(Object object):将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data
  • object.success 回调函数参数:
  • data,string,开发者服务器返回的数据
  • statusCode,number,开发者服务器返回的 HTTP 状态码
  • 返回值:UploadTask,一个可以监听上传进度进度变化的事件和取消上传的对象
wx.chooseImage({
  success (res) {
    const tempFilePaths = res.tempFilePaths
    wx.uploadFile({
      url: 'https://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
      filePath: tempFilePaths[0],
      name: 'file',
      formData: {
        'user': 'test'
      },
      success (res){
        const data = res.data
        //do something
      }
    })
  }
})
【方法】
UploadTask.abort()
中断上传任务
UploadTask.onProgressUpdate(function callback)
监听上传进度变化事件
UploadTask.offProgressUpdate(function callback)
取消监听上传进度变化事件
UploadTask.onHeadersReceived(function callback)
监听 HTTP Response Header 事件。会比请求完成事件更早
UploadTask.offHeadersReceived(function callback)
取消监听 HTTP Response Header 事件
const uploadTask = wx.uploadFile({
  url: 'http://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
  filePath: tempFilePaths[0],
  name: 'file',
  formData:{
    'user': 'test'
  },
  success (res){
    const data = res.data
    //do something
  }
})

uploadTask.onProgressUpdate((res) => {
  console.log('上传进度', res.progress)
  console.log('已经上传的数据长度', res.totalBytesSent)
  console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)
})

uploadTask.abort() // 取消上传任务

小程序支付

  1. wx.requestPayment(Object object):发起微信支付。调用前需在小程序微信公众平台 -功能-微信支付入口申请接入微信支付;如果使用云开发,则 wx.requestPayment 所需参数可以通过云开发微信支付统一下单接口免鉴权获取、并可免证书、免签名的安全调用微信支付服务端接口、及接收异步支付结果回调,详见云开发微信支付
  • 参数:
  • timeStamp,string,必填,时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间
  • nonceStr,string,必填,随机字符串,长度为32个字符以下
  • package,string,必填,统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=***
  • signType,string,MD5,签名算法,应与后台下单时的值一致
  • paySign,string,必填,签名,具体见微信支付文档
wx.requestPayment({
  timeStamp: '',
  nonceStr: '',
  package: '',
  signType: 'MD5',
  paySign: '',
  success (res) { },
  fail (res) { }
})
  • 如果服务端有使用云开发,可以通过云开发微信支付统一下单接口免鉴权获取以上所需所有参数
// 云函数代码
const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

exports.main = async (event, context) => {
  const res = await cloud.cloudPay.unifiedOrder({
    "body" : "小秋TIT店-超市",
    "outTradeNo" : "1217752501201407033233368018",
    "spbillCreateIp" : "127.0.0.1",
    "subMchId" : "1900009231",
    "totalFee" : 1,
    "envId": "test-f0b102",
    "functionName": "pay_cb"
  })
  return res
}

// 小程序代码
wx.cloud.callFunction({
  name: '函数名',
  data: {
    // ...
  },
  success: res => {
    const payment = res.result.payment
    wx.requestPayment({
      ...payment,
      success (res) {
        console.log('pay success', res)
      },
      fail (err) {
        console.error('pay fail', err)
      }
    })
  },
  fail: console.error,
})
  1. wx.requestOrderPayment(Object args):创建自定义版交易组件订单,并发起支付。 仅接入了自定义版交易组件的小程序需要使用,普通小程序可直接使用 wx.requestPayment
  • 接入自定义版交易组件之后,若要发起微信支付,请先查询需要校验的场景。 在需要校验的场景中,发起微信支付时,必须使用该接口,需要按照要求传入相关的订单信息进行校验,校验通过后用户才可以完成当前订单的支付,非需要校验的场景则可以按照商家要求自行选择传入订单信息或不传入
// 除 orderInfo 以外,其余字段与 wx.requestPayment 一致
wx.requestOrderPayment({
  orderInfo: {},
  timeStamp: '',
  nonceStr: '',
  package: '',
  signType: 'MD5',
  paySign: '',
  success (res) { },
  fail (res) { }
})

小程序图片

  1. wx.saveImageToPhotosAlbum(Object object):保存图片到系统相册
  2. wx.previewMedia(Object object):预览图片和视频
  • 参数:
  • sources,Areray/Object,必填,需要预览的资源列表
  • current,number,默认0,当前显示的资源序号
  • showmenu,boolean,默认true,是否显示长按菜单
  1. wx.previewImage(Object object):在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作
  2. wx.getImageInfo(Object object):获取图片信息。网络图片需先配置download域名才能生效
wx.getImageInfo({
  src: 'images/a.jpg',
  success (res) {
    console.log(res.width)
    console.log(res.height)
  }
})

wx.chooseImage({
  success (res) {
    wx.getImageInfo({
      src: res.tempFilePaths[0],
      success (res) {
        console.log(res.width)
        console.log(res.height)
      }
    })
  }
})
  1. wx.compressImage(Object object):压缩图片接口,可选压缩质量
  • 参数:
  • src,string,必填,图片路径,图片的路径,支持本地路径、代码包路径
  • quality,number,默认80,压缩质量,范围0~100,数值越小,质量越低,压缩率越高(仅对jpg有效)
wx.compressImage({
  src: '', // 图片路径
  quality: 80 // 压缩质量
})
  1. wx.chooseMessageFile(Object object):从客户端会话选择文件
  • 参数:
  • count,number,必填,最多可以选择的文件个数,可以0-100
  • type,string,默认all,所选的文件的类型
  • extension,Array/string,根据文件拓展名过滤,仅 type==file 时有效。每一项都不能是空字符串。默认不过滤。
 类似资料: