• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

微信小程序--API

Data: 2017-10-01 08:23:06Form: JournalClick: 13

# 微信小程序--API


# 一、什么是 API

  • 小程序开发框架提供丰富的微信原生API,可以方便的调起微信提供的能力,如获取用户信息,本地存储,支付功能等
  • 小程序提供的API按照功能主要分为几大类:网络、媒体、文件、数据缓存、位置、设备、界面、界面节点信息还有一些特殊的开放接口

# 二、API 导读

  • API 现有256个
一级分类二级分类API描述
基础wx.canIUse判断小程序的API,回调,参数,组件等是否在当前版本可用
wx.base64ToArrayBuffer将 Base64 字符串转成 ArrayBuffer 对象
wx.arrayBufferToBase64将 ArrayBuffer 对象转成 Base64 字符串
系统wx.getSystemInfo获取系统信息
wx.getSystemInfoSyncwx.getSystemInfo 的同步版本
更新wx.getUpdateManager获取全局唯一的版本更新管理器,用于管理小程序更新
小程序-生命周期wx.getLaunchOptionsSync获取小程序启动时的参数
小程序-应用级事件wx.onPageNotFound监听小程序要打开的页面不存在事件
wx.onError监听小程序错误事件。如脚本错误或 API 调用报错等
wx.onAudioInterruptionEnd监听音频中断结束事件
wx.onAudioInterruptionBegin监听音频因为受到系统占用而被中断开始事件
wx.onAppShow监听小程序切前台事件
wx.onAppHide监听小程序切后台事件
wx.offPageNotFound取消监听小程序要打开的页面不存在事件
wx.offError取消监听小程序错误事件
wx.offAudioInterruptionEnd取消监听音频中断结束事件
wx.offAudioInterruptionBegin取消监听音频因为受到系统占用而被中断开始事件
wx.offAppShow取消监听小程序切前台事件
wx.offAppHide取消监听小程序切后台事件
调试wx.setEnableDebug设置是否打开调试开关。此开关对正式版也能生效
wx.getLogManager获取日志管理器对象
console向调试面板中打印日志
LogManager日志管理器实例
定时器setInterval设定一个定时器
clearInterval取消由 setInterval 设置的定时器
setTimeout设定一个定时器
clearTimeout取消由 setTimeout 设置的定时器
路由wx.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
wx.reLaunch关闭所有页面,打开到应用内的某个页面
wx.redirectTo关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面
wx.navigateTo保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面
wx.navigateBack关闭当前页面,返回上一页面或多级页面
界面交互wx.showToast显示消息提示框
wx.hideToast隐藏消息提示框
wx.showModal显示模态对话框
wx.showLoading显示 loading 提示框
wx.hideLoading隐藏 loading 提示框
wx.hideLoading隐藏 loading 提示框
导航栏wx.showNavigationBarLoading在当前页面显示导航条加载动画
wx.setNavigationBarTitle动态设置当前页面的标题
wx.setNavigationBarColor设置页面导航条颜色
wx.hideNavigationBarLoading在当前页面隐藏导航条加载动画
wx.hideHomeButton隐藏返回首页按钮
背景wx.setBackgroundTextStyle动态设置下拉背景字体、loading 图的样式
wx.setBackgroundColor动态设置窗口的背景色
Tab Barwx.showTabBarRedDot显示 tabBar 某一项的右上角的红点
wx.hideTabBarRedDot隐藏 tabBar 某一项的右上角的红点
wx.showTabBar显示 tabBar
wx.hideTabBar隐藏 tabBar
wx.setTabBarStyle动态设置 tabBar 的整体样式
wx.setTabBarItem动态设置 tabBar 某一项的内容
wx.setTabBarBadge为 tabBar 某一项的右上角添加文本
wx.removeTabBarBadge移除 tabBar 某一项右上角的文本
字体wx.loadFontFace动态加载网络字体。文件地址需为下载类型。iOS 仅支持 https 格式文件地址
下拉刷新wx.stopPullDownRefresh停止当前页面下拉刷新
wx.startPullDownRefresh开始下拉刷新。调用后触发下拉刷新动画,效果与用户手动下拉刷新一致
滚动wx.pageScrollTo将页面滚动到目标位置,支持选择器和滚动距离两种方式定位
动画wx.createAnimation创建一个动画实例 animation。调用实例的方法来描述动画
置顶wx.setTopBarText动态设置置顶栏文字内容
自定义组件wx.nextTick延迟一部分操作到下一个时间片再执行
菜单wx.getMenuButtonBoundingClientRect获取菜单按钮(右上角胶囊按钮)的布局位置信息。坐标信息以屏幕左上角为原点
窗口wx.onWindowResize监听窗口尺寸变化事件
wx.offWindowResize取消监听窗口尺寸变化事件
键盘wx.onWindowResize监听键盘高度变化
wx.getSelectedTextRange在input、textarea等focus之后,获取输入框的光标位置
网络发送请求wx.request发起 HTTPS 网络请求
下载wx.downloadFile下载文件资源到本地
上传wx.uploadFile将本地资源上传到服务器
WebSocketwx.sendSocketMessage通过 WebSocket 连接发送数据
wx.onSocketOpen监听 WebSocket 连接打开事件
wx.onSocketMessage监听 WebSocket 接受到服务器的消息事件
wx.onSocketError监听 WebSocket 错误事件
wx.onSocketClose监听 WebSocket 连接关闭事件
wx.connectSocket创建一个 WebSocket 连接
wx.closeSocket关闭 WebSocket 连接
mDNSwx.stopLocalServiceDiscovery停止搜索 mDNS 服务
wx.startLocalServiceDiscovery开始搜索局域网下的 mDNS 服务
wx.onLocalServiceResolveFail监听 mDNS 服务解析失败的事件
wx.onLocalServiceLost监听 mDNS 服务离开的事件
wx.onLocalServiceFound监听 mDNS 服务发现的事件
wx.onLocalServiceDiscoveryStop监听 mDNS 服务停止搜索的事件
wx.offLocalServiceResolveFail取消监听 mDNS 服务解析失败的事件
wx.offLocalServiceLost取消监听 mDNS 服务离开的事件
wx.offLocalServiceFound取消监听 mDNS 服务发现的事件
wx.offLocalServiceDiscoveryStop取消监听 mDNS 服务停止搜索的事件
UDP 通讯wx.createUDPSocket创建一个 UDP Socket 实例
数据缓存wx.setStorage将数据存储在本地缓存中指定的 key 中
wx.setStorageSyncwx.setStorage 的同步版本
wx.removeStorage从本地缓存中移除指定 key
wx.removeStorageSyncwx.removeStorage 的同步版本
wx.getStorage从本地缓存中异步获取指定 key 的内容
wx.getStorageSyncwx.getStorage 的同步版本
wx.getStorageInfo异步获取当前storage的相关信息
wx.getStorageInfoSyncwx.getStorageInfo 的同步版本
wx.clearStorage清理本地数据缓存
wx.clearStorageSyncwx.clearStorage 的同步版本
媒体地图wx.createMapContext创建 map 上下文 MapContext 对象
图片wx.saveImageToPhotosAlbum保存图片到系统相册
wx.previewImage在新页面中全屏预览图片
wx.getImageInfo获取图片信息
wx.compressImage压缩图片接口,可选压缩质量
wx.chooseMessageFile从客户端会话选择文件
wx.chooseImage从本地相册选择图片或使用相机拍照
视频wx.saveVideoToPhotosAlbum保存视频到系统相册
wx.createVideoContext创建 video 上下文 VideoContext 对象
wx.chooseVideo拍摄视频或从手机相册中选视频
wx.chooseMedia拍摄或从手机相册中选择图片或视频
音频wx.stopVoice结束播放语音
wx.setInnerAudioOption设置 InnerAudioContext 的播放选项
wx.playVoice开始播放语音
wx.pauseVoice暂停正在播放的语音
wx.getAvailableAudioSources获取当前支持的音频输入源
wx.createInnerAudioContext创建内部 audio 上下文 InnerAudioContext 对象
wx.createAudioContext创建 audio 上下文 AudioContext 对象
背景音频wx.stopBackgroundAudio停止播放音乐
wx.seekBackgroundAudio控制音乐播放进度
wx.playBackgroundAudio使用后台播放器播放音乐
wx.pauseBackgroundAudio暂停播放音乐
wx.onBackgroundAudioStop监听音乐停止事件
wx.onBackgroundAudioPlay监听音乐播放事件
wx.onBackgroundAudioPause监听音乐暂停事件
wx.getBackgroundAudioPlayerState获取后台音乐播放状态
wx.getBackgroundAudioManager获取全局唯一的背景音频管理器
实时音视频wx.createLivePusherContext创建 live-pusher 上下文 LivePusherContext 对象
wx.createLivePlayerContext创建 live-player 上下文 LivePlayerContext 对象
录音wx.stopRecord停止录音
wx.startRecord开始录音
wx.getRecorderManager获取全局唯一的录音管理器 RecorderManager
相机wx.createCameraContext创建 camera 上下文 CameraContext 对象
音视频合成wx.createMediaContainer创建音视频处理容器,最终可将容器中的轨道合成一个视频
位置wx.stopLocationUpdate关闭监听实时位置变化,前后台都停止消息接收
wx.startLocationUpdateBackground开启小程序进入前后台时均接收位置消息,需引导用户开启授权
wx.startLocationUpdate开启小程序进入前台时接收位置消息
wx.openLocation使用微信内置地图查看位置
wx.onLocationChange监听实时地理位置变化事件
wx.offLocationChange取消监听实时地理位置变化事件
wx.getLocation获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用
wx.chooseLocation打开地图选择位置
转发wx.updateShareMenu更新转发属性
wx.showShareMenu显示当前页面的转发按钮
wx.hideShareMenu隐藏转发按钮
wx.getShareInfo获取转发详细信息
画布wx.createOffscreenCanvas创建离屏 canvas 实例
wx.createCanvasContext创建 canvas 的绘图上下文 CanvasContext 对象
wx.canvasToTempFilePath把当前画布指定区域的内容导出生成指定大小的图片
wx.canvasPutImageData将像素数据绘制到画布
wx.canvasGetImageData获取 canvas 区域隐含的像素数据
文件wx.saveFile保存文件到本地
wx.removeSavedFile删除本地缓存文件
wx.openDocument新开页面打开文档
wx.getSavedFileList获取该小程序下已保存的本地缓存文件列表
wx.getSavedFileInfo获取本地文件的文件信息
wx.getFileSystemManager获取全局唯一的文件管理器
wx.getFileInfo获取文件信息
开发接口登陆wx.login调用接口获取登录凭证(code)
wx.checkSession检查登录态是否过期
小程序跳转wx.navigateToMiniProgram打开另一个小程序
wx.navigateBackMiniProgram返回到上一个小程序
账户信息wx.getAccountInfoSync返回到上一个小程序
用户信息wx.getUserInfo获取用户信息
数据上报wx.reportMonitor自定义业务数据监控上报接口
数据分析wx.reportAnalytics自定义分析数据上报接口
支付wx.requestPayment发起微信支付
授权wx.authorize提前向用户发起授权请求
设置wx.openSetting调起客户端小程序设置界面,返回用户设置的操作结果
wx.getSetting获取用户的当前设置
收货地址wx.chooseAddress获取用户收货地址
卡券wx.openCard查看微信卡包中的卡券
wx.addCard批量添加卡券
发票wx.chooseInvoiceTitle选择用户的发票抬头
wx.chooseInvoice选择用户已有的发票
生物认证wx.startSoterAuthentication开始 SOTER 生物认证
wx.checkIsSupportSoterAuthentication获取本机支持的 SOTER 生物认证方式
wx.checkIsSoterEnrolledInDevice获取设备内是否录入如指纹等生物信息的接口
微信运动wx.getWeRunData获取用户过去三十天微信运动步数
性能wx.reportPerformance自定义性能监控上报。使用前,需要在小程序管理后台配置
订阅消息wx.requestSubscribeMessage起客户端小程序订阅消息界面,返回用户订阅消息的操作结果
微信红包wx.showRedPackage拉取h5领取红包封面页
设备iBeaconwx.stopBeaconDiscovery停止搜索附近的 iBeacon 设备
wx.startBeaconDiscovery开始搜索附近的 iBeacon 设备
wx.onBeaconUpdate监听 iBeacon 设备更新事件,仅能注册一个监听
wx.onBeaconServiceChange监听 iBeacon 服务状态变化事件,仅能注册一个监听
wx.offBeaconUpdate取消监听 iBeacon 设备更新事件
wx.offBeaconServiceChange取消监听 iBeacon 服务状态变化事件
wx.getBeacons获取所有已搜索到的 iBeacon 设备
Wi-Fiwx.stopWifi关闭 Wi-Fi 模块
wx.startWifi初始化 Wi-Fi 模块
wx.setWifiList设置 wifiList 中 AP 的相关信息
wx.onWifiConnected监听连接上 Wi-Fi 的事件
wx.onGetWifiList监听获取到 Wi-Fi 列表数据事件
wx.offWifiConnected取消监听连接上 Wi-Fi 的事件
wx.offGetWifiList取消监听获取到 Wi-Fi 列表数据事件
wx.getWifiList请求获取 Wi-Fi 列表
wx.getConnectedWifi获取已连接中的 Wi-Fi 信息
wx.connectWifi连接 Wi-Fi
联系人wx.addPhoneContact添加手机通讯录联系人
低功耗蓝牙wx.writeBLECharacteristicValue向低功耗蓝牙设备特征值中写入二进制数据
wx.readBLECharacteristicValue读取低功耗蓝牙设备的特征值的二进制数据值
wx.onBLEConnectionStateChange监听低功耗蓝牙连接状态的改变事件
wx.onBLECharacteristicValueChange监听低功耗蓝牙设备的特征值变化事件
wx.offBLEConnectionStateChange取消监听低功耗蓝牙连接状态的改变事件
wx.offBLECharacteristicValueChange取消监听低功耗蓝牙设备的特征值变化事件
wx.notifyBLECharacteristicValueChange启用低功耗蓝牙设备特征值变化时的 notify 功能,订阅特征值
wx.getBLEDeviceServices获取蓝牙设备所有服务(service)
wx.getBLEDeviceCharacteristics获取蓝牙设备某个服务中所有特征值(characteristic)
wx.createBLEConnection连接低功耗蓝牙设备
wx.closeBLEConnection断开与低功耗蓝牙设备的连接
蓝牙wx.stopBluetoothDevicesDiscovery停止搜寻附近的蓝牙外围设备
wx.startBluetoothDevicesDiscovery开始搜寻附近的蓝牙外围设备
wx.openBluetoothAdapter初始化蓝牙模块
wx.onBluetoothDeviceFound监听寻找到新设备的事件
wx.onBluetoothAdapterStateChange监听蓝牙适配器状态变化事件
wx.offBluetoothDeviceFound取消监听寻找到新设备的事件
wx.offBluetoothAdapterStateChange取消监听蓝牙适配器状态变化事件
wx.getConnectedBluetoothDevices根据 uuid 获取处于已连接状态的设备
wx.getBluetoothDevices获取在蓝牙模块生效期间所有已发现的蓝牙设备
wx.getBluetoothAdapterState获取本机蓝牙适配器状态
wx.closeBluetoothAdapter关闭蓝牙模块
电量wx.getBatteryInfoSync获取设备电量,同步版本
wx.getBatteryInfo获取设备电量
剪贴板wx.setClipboardData设置系统剪贴板的内容
wx.getClipboardData获取系统剪贴板的内容
NFCwx.stopHCE关闭 NFC 模块。仅在安卓系统下有效
wx.startHCE获取系统剪贴板的内容
wx.sendHCEMessage发送 NFC 消息。仅在安卓系统下有效
wx.onHCEMessage监听接收 NFC 设备消息事件,仅能注册一个监听
wx.offHCEMessage接收 NFC 设备消息事件,取消事件监听
wx.getHCEState判断当前设备是否支持 HCE 能力
网络wx.onNetworkStatusChange监听网络状态变化事件
wx.offNetworkStatusChange取消监听网络状态变化事件,参数为空,则取消所有的事件监听
wx.getNetworkType获取网络类型
屏幕wx.setScreenBrightness设置屏幕亮度
wx.setKeepScreenOn设置是否保持常亮状态。仅在当前小程序生效,离开小程序后设置失效
wx.onUserCaptureScreen监听用户主动截屏事件
wx.offUserCaptureScreen用户主动截屏事件。取消事件监听。
wx.getScreenBrightness获取屏幕亮度
电话wx.makePhoneCall拨打电话
加速针wx.stopAccelerometer停止监听加速度数据
wx.startAccelerometer开始监听加速度数据
wx.onAccelerometerChange监听加速度数据事件
wx.offAccelerometerChange取消监听加速度数据事件,参数为空,则取消所有的事件监听
罗盘wx.stopCompass停止监听罗盘数据
wx.startCompass开始监听罗盘数据
wx.onCompassChange监听罗盘数据变化事件
wx.offCompassChange取消监听罗盘数据变化事件,参数为空,则取消所有的事件监听
设备方向wx.stopDeviceMotionListening停止监听设备方向的变化
wx.startDeviceMotionListening开始监听设备方向的变化
wx.onDeviceMotionChange监听设备方向变化事件
wx.offDeviceMotionChange取消监听设备方向变化事件,参数为空,则取消所有的事件监听
陀螺仪wx.stopGyroscope停止监听陀螺仪数据
wx.startGyroscope开始监听陀螺仪数据
wx.onGyroscopeChange监听陀螺仪数据变化事件
wx.offGyroscopeChange取消监听陀螺仪数据变化事件
性能wx.onMemoryWarning监听内存不足告警事件
wx.offMemoryWarning取消监听内存不足告警事件
扫码wx.scanCode调起客户端扫码界面进行扫码
振动wx.vibrateShort使手机发生较短时间的振动(15 ms)
wx.vibrateLong使手机发生较长时间的振动(400 ms)
Workerwx.createWorker创建一个 Worker 线程
第三方平台wx.getExtConfigSync获取第三方平台自定义的数据字段,同步版本
wx.getExtConfig获取第三方平台自定义的数据字段
WXMLwx.createSelectorQuery返回一个 SelectorQuery 对象实例
wx.createIntersectionObserver创建并返回一个 IntersectionObserver 对象实例
广告wx.createRewardedVideoAd创建激励视频广告组件
wx.createInterstitialAd创建插屏广告组件

# 三、使用 API

# 1、事件监听 API

  • on 开头的 API 用来监听某个事件是否触发
  • 这类 API 接受一个回调函数作为参数,当事件触发时会调用这个回调函数,并将相关数据以参数形式传入

wx.onAppShow 监听小程序切前台事件 wx.onAppHide 监听小程序切后台事件

Page({
  onLoad:function(options){
    wx.onAppShow(function(){
      console.log('切换前台');
    })
    wx.onAppHide(function(){
      console.log('切换后台');
    })
  }
})

# 2、同步API

  • Sync 结尾的 API 都是同步 API
  • 同步 API 的执行结果可以通过函数返回值直接获取,如果执行出错会抛出异常。

wx.getSystemInfoSync 获取系统信息

Page({
  onLoad: function (options) {
    console.log(wx.getSystemInfoSync());
    var sync = wx.getSystemInfoSync();
    console.log(sync.model);
  }
})

# 3、异步API

  • 通常都接受一个 Object 类型的参数,这个参数都支持按需指定
编号参数名类型必填说明
1successfunction接口调用成功的回调函数
2failfunction接口调用失败的回调函数
3completefunction接口调用结束的回调函数(调用成功、失败都会执行)
4其他Any-接口定义的其他参数

wx.getSystemInfo 获取系统信息

  • 回调函数的参数,success,fail,complete 函数调用时会传入一个 Object 类型参数
编号属性类型说明
1errMsgstring错误信息,如果调用成功返回 ${apiName}:ok
2errCodenumber错误码,仅部分 API 支持,具体含义请参考对应 API 文档,成功时为 0。
3其他Any接口返回的其他数据
Page({
  onLoad: function (options) {
    wx.getSystemInfo({
      success(res) {
        console.log(res);
        console.log(res.model);
        console.log('成功执行');
      },
      fail(res){
        console.log('失败执行');
      },
      complete(res){
        console.log('不管成功失败都执行');
      }
    })
  }
})
Name:
<提交>