4-微信小程序API

1、网络:html

一、网络相关API说明 【1】服务器域名配置 《1》简介 每一个微信小程序须要事先设置一个通信域名,小程序能够跟指定的域名与进行网络通讯。包括普通 HTTPS 请求(request)、上传文件(uploadFile)、下载文件(downloadFile) 和 WebSocket 通讯(connectSocket)node

《2》配置流程 小程序后台 —> 开发设置 —> 服务器域名 配置注意事项: • 域名只支持 https (request、uploadFile、downloadFile) 和 wss (connectSocket) 协议; • 域名不能使用 IP 地址或 localhost; • 域名必须通过 ICP 备案; · 出于安全考虑,api.weixin.qq.com 不能被配置为服务器域名,相关API也不能在小程序内调用。**开发者应将 appsecret 保存到后台服务器中,经过服务器使用 appsecret 获取 accesstoken,并调用相关 API; • 对于每一个接口,分别能够配置最多 20 个域名 • 《3》HTTPS 证书 小程序必须使用 HTTPS 请求。小程序内会对服务器域名使用的 HTTPS 证书进行校验,若是校验失败,则请求不能成功发起。因为系统限制,不一样平台对于证书要求的严格程度不一样。为了保证小程序的兼容性,建议开发者按照最高标准进行证书配置,并使用相关工具检查现有证书是否符合要求。 证书配置要求: • HTTPS 证书必须有效。证书必须被系统信任,部署SSL证书的网站域名必须与证书颁发的域名一致,证书必须在有效期内; • iOS 不支持自签名证书; • iOS 下证书必须知足苹果 App Transport Security (ATS) 的要求; • TLS 必须支持 1.2 及以上版本。部分旧 Android 机型还未支持 TLS 1.2,请确保 HTTPS 服务器的 TLS 版本支持1.2及如下版本; • 部分 CA 可能不被操做系统信任,请开发者在选择证书时注意小程序和各系统的相关通告。 • 《4》跳过域名校验 在微信开发者工具中,能够临时开启 开发环境不校验请求域名、TLS版本及HTTPS证书 选项,跳过服务器域名的校验。此时,在微信开发者工具中及手机开启调试模式时,不会进行服务器域名的校验。在服务器域名配置成功后,建议开发者关闭此选项进行开发,并在各平台下进行测试,以确认服务器域名配置正确。算法

【2】关于请求 • 默认超时时间和最大超时时间都是 60s • request、uploadFile、downloadFile 的最大并发限制是 10 个 • 网络请求的 referer header 不可设置。其格式固定为 servicewechat.com/{appid}/{ve… {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其他为正式版本。 • 小程序进入后台运行后(非置顶聊天),若是 5s 内网络请求没有结束,会回调错误信息 fail interrupted;在回到前台以前,网络请求接口调用都会没法调用。json

【3】关于服务器返回 《1》返回值键值编码 建议服务器返回值使用 UTF-8 编码。对于非 UTF-8 编码,小程序会尝试进行转换,可是会有转换失败的可能 小程序会自动对BOM头进行过滤 《2》回调 只要成功接收到服务器返回,不管statusCode是多少,都会进入success回调。请开发者根据业务逻辑对返回值进行判断canvas

二、发起请求 wx.request(OBJECT):发起网络请求小程序

三、上传,下载 wx.uploadFile(OBJECT):将本地资源上传到开发者服务器 wx.downloadFile(OBJECT):下载文件资源到本地微信小程序

四、WebSocket wx.connectSocket(OBJECT):WebSocket 链接 wx.onSocketOpen(CALLBACK):监听WebSocket链接打开事件 wx.onSocketError(CALLBACK):监听WebSocket错误 wx.sendSocketMessage(OBJECT):经过 WebSocket 链接发送数据 wx.onSocketMessage(CALLBACK):监听WebSocket接受到服务器的消息事件 wx.closeSocket(OBJECT):关闭 WebSocket 链接 wx.onSocketClose(CALLBACK):监听WebSocket关闭 SocketTask:WebSocket 任务,可经过 wx.connectSocket() 接口建立返回api

2、媒体:数组

一、图片 wx.chooseImage(OBJECT):从本地相册选择图片或使用相机拍照 wx.previewImage(OBJECT):预览图片 wx.getImageInfo(OBJECT):获取图片信息,假若为网络图片,需先配置download域名才能生效 wx.saveImageToPhotosAlbum(OBJECT):保存图片到系统相册缓存

二、录音 wx.startRecord(OBJECT):开始录音 wx.stopRecord():主动调用中止录音 注意:括号为空表示没有参数

三、录音管理 wx.getRecorderManager():获取全局惟一的录音管理器 recorderManager

四、音频播放控制 wx.playVoice(OBJECT):开始播放语音 wx.pauseVoice():暂停正在播放的语音 wx.stopVoice():结束播放语音

五、音乐播放控制 wx.getBackgroundAudioPlayerState(OBJECT):获取后台音乐播放状态。 wx.playBackgroundAudio(OBJECT):使用后台播放器播放音乐 wx.pauseBackgroundAudio():暂停播放音乐 wx.seekBackgroundAudio(OBJECT):控制音乐播放进度 wx.stopBackgroundAudio():中止播放音乐 wx.onBackgroundAudioPlay(CALLBACK):监听音乐播放 wx.onBackgroundAudioPause(CALLBACK):监听音乐暂停 wx.onBackgroundAudioStop(CALLBACK):监听音乐中止

六、背景音频播放管理 wx.getBackgroundAudioManager():获取全局惟一的背景音频管理器 backgroundAudioManager

七、音频组件控制 wx.createAudioContext(audioId, this):建立并返回 audio 上下文 audioContext 对象。在自定义组件下,第二个参数传入组件实例this,以操做组件内 

八、视频 wx.chooseVideo(OBJECT):拍摄视频或从手机相册中选视频,返回视频的临时文件路径。 wx.saveVideoToPhotosAlbum(OBJECT):保存视频到系统相册

九、视频组件控制 wx.createVideoContext(videoId, this):建立并返回 video 上下文 videoContext 对象。在自定义组件下,第二个参数传入组件实例this,以操做组件内<video/组件。

十、相机组件控制 wx.createCameraContext(this):建并返回 camera 上下文 cameraContext 对象,cameraContext 与页面的 camera 组件绑定,一个页面只能有一个camera,经过它能够操做对应的  组件。 在自定义组件下,第一个参数传入组件实例this,以操做组件内  组件

十一、实时音视频 wx.createLivePlayerContext(domId, this):操做对应的  组件。 建立并返回 live-player 上下文 LivePlayerContext 对象。在自定义组件下,第二个参数传入组件实例this,以操做组件内  组件 wx.createLivePusherContext():建立并返回 live-pusher 上下文 LivePusherContext 对象,LivePusherContext 与页面的  组件绑定,一个页面只能有一个 live-pusher,经过它能够操做对应的  组件。 在自定义组件下,第一个参数传入组件实例this,以操做组件内  组件

十二、动态加载字体 wx.loadFontFace(OBJECT):动态加载网络字体,文件地址需为下载类型。IOS下仅支持https格式文件地址。

3、文件:

一、普通操做 wx.saveFile(OBJECT):保存文件到本地 wx.getFileInfo(OBJECT):获取文件信息 wx.getSavedFileList(OBJECT):获取本地已保存的文件列表 wx.getSavedFileInfo(OBJECT):获取本地文件的文件信息 wx.removeSavedFile(OBJECT):删除本地存储的文件 wx.openDocument(OBJECT):新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx

二、文件管理器 FileSystemManager:文件管理器 FileSystemManager wx.getFileSystemManager():获取全局惟一的文件管理器 FileSystemManager.appendFile(Object object):在文件结尾追加内容 FileSystemManager.access(Object object):判断文件/目录是否存在 FileSystemManager.accessSync(string path):FileSystemManager.access 的同步版本 FileSystemManager.appendFileSync(string filePath, string|ArrayBuffer data, string encoding):FileSystemManager.appendFile 的同步版本 FileSystemManager.copyFile(Object object):复制文件 FileSystemManager.copyFileSync(string srcPath, string destPath):FileSystemManager.copyFile的同步版本 FileSystemManager.getSavedFileList(Object object):获取该小程序下已保存的本地缓存文件列表 FileSystemManager.getFileInfo(Object object):获取该小程序下的本地临时文件或本地缓存文件信息 FFileSystemManager.mkdir(Object object):建立目录 FileSystemManager.mkdirSync(string dirPath):FileSystemManager.mkdir 的同步版本 FileSystemManager.removeSavedFile(Object object):删除该小程序下已保存的本地缓存文件 FileSystemManager.readFileSync(string filePath, string encoding):FileSystemManager.readFile的同步版本 FileSystemManager.renameSync(string oldPath, string newPath):FileSystemManager.rename 的同步版本 FileSystemManager.rmdirSync(string dirPath):FileSystemManager.rmdir 的同步版本 FileSystemManager.readdir(Object object):读取目录内文件列表 FileSystemManager.rename(Object object):重命名文件,能够把文件从 oldPath 移动到 newPath FileSystemManager.readFile(Object object):读取本地文件内容 FileSystemManager.rmdir(Object object):删除目录 FileSystemManager.readdirSync(string dirPath):FileSystemManager.readdir 的同步版本 FileSystemManager.saveFile(Object object):保存临时文件到本地。此接口会移动临时文件,所以调用成功后,tempFilePath 将不可用。 FileSystemManager.saveFileSync(string tempFilePath, string filePath):FileSystemManager.saveFile 的同步版本 FileSystemManager.stat(Object object):获取文件 Stats 对象 FileSystemManager.statSync(string path):FileSystemManager.stat 的同步版本 Stats:描述文件状态的对象 Stats.isDirectory():判断当前文件是否一个目录 Stats.isFile():判断当前文件是否一个普通文件 FileSystemManager.unlink(Object object):删除文件 FileSystemManager.unzip(Object object):解压文件 FileSystemManager.unlinkSync(string filePath):FileSystemManager.unlink 的同步版本 FileSystemManager.writeFile(Object object):写文件 FileSystemManager.writeFileSync(string filePath, string|ArrayBuffer data, string encoding):FileSystemManager.writeFile 的同步版本

4、数据缓存:

一、简介 每一个微信小程序均可以有本身的本地缓存,能够经过 wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)能够对本地缓存进行设置、获取和清理。同一个微信用户,同一个小程序 storage 上限为 10MB。localStorage 以用户维度隔离,同一台设备上,A 用户没法读取到 B 用户的数据。 注意事项: 若是用户储存空间不足,咱们会清空最近最久未使用的小程序的本地缓存。咱们不建议将关键信息所有存在 localStorage,以防储存空间不足或用户换设备的状况。

二、本地缓存 wx.setStorage(OBJECT):将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。 wx.setStorageSync(KEY,DATA):将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。 wx.getStorage(OBJECT):从本地缓存中异步获取指定 key 对应的内容 wx.getStorageSync(KEY):从本地缓存中同步获取指定 key 对应的内容 wx.getStorageInfo(OBJECT):异步获取当前storage的相关信息 wx.getStorageInfoSync:同步获取当前storage的相关信息 wx.removeStorage(OBJECT):从本地缓存中异步移除指定 key wx.removeStorageSync(KEY):从本地缓存中同步移除指定 key wx.clearStorage():清理本地数据缓存 wx.clearStorageSync():同步清理本地数据缓存 注意:本地数据存储的大小限制为 10MB

5、位置:

一、获取位置 wx.getLocation(OBJECT):获取当前的地理位置、速度。当用户离开小程序后,此接口没法调用,须要用户受权 scope.userLocation wx.chooseLocation(OBJECT):打开地图选择位置,须要用户受权 scope.userLocation。

二、查看位置 wx.openLocation(OBJECT):使用微信内置地图查看位置,须要用户受权 scope.userLocation

三、地图组件控制 wx.createMapContext(mapId, this):建立并返回 map 上下文 mapContext 对象。在自定义组件下,第二个参数传入组件实例this,以操做组件内  组件

6、设备:

一、系统信息 wx.getSystemInfo(OBJECT):获取系统信息 wx.getSystemInfoSync():获取系统信息同步接口 wx.canIUse(String):判断小程序的API,回调,参数,组件等是否在当前版本可用。

二、内存 wx.onMemoryWarning(callback):监听内存不足的告警事件,Android下有告警等级划分,只有LOW和CRITICAL会回调开发者;iOS无等级划分。

三、网络状态 wx.getNetworkType(OBJECT):获取网络类型 wx.onNetworkStatusChange(CALLBACK):监听网络状态变化

四、加速度计 wx.onAccelerometerChange(CALLBACK):监听加速度数据,频率:5次/秒,接口调用后会自动开始监听,可以使用 wx.stopAccelerometer 中止监听。 wx.startAccelerometer(OBJECT):开始监听加速度数据 wx.stopAccelerometer(OBJECT):中止监听加速度数据

五、罗盘 wx.onCompassChange(CALLBACK):监听罗盘数据,频率:5次/秒,接口调用后会自动开始监听,可以使用wx.stopCompass中止监听 wx.startCompass(OBJECT):开始监听罗盘数据 wx.stopCompass(OBJECT):中止监听罗盘数据

六、拨打电话 wx.makePhoneCall(OBJECT):拨打电话

七、扫码 wx.scanCode(OBJECT):调起客户端扫码界面,扫码成功后返回对应的结果

八、剪贴板 wx.setClipboardData(OBJECT):设置系统剪贴板的内容 wx.getClipboardData(OBJECT):获取系统剪贴板内容

九、蓝牙 wx.openBluetoothAdapter(OBJECT):初始化小程序蓝牙模块,生效周期为调用wx.openBluetoothAdapter至调用wx.closeBluetoothAdapter或小程序被销毁为止。 wx.closeBluetoothAdapter(OBJECT):关闭蓝牙模块,使其进入未初始化状态。 wx.getBluetoothAdapterState(OBJECT):获取本机蓝牙适配器状态 wx.onBluetoothAdapterStateChange(CALLBACK):监听蓝牙适配器状态变化事件 wx.startBluetoothDevicesDiscovery(OBJECT):开始搜寻附近的蓝牙外围设备 wx.stopBluetoothDevicesDiscovery(OBJECT):中止搜寻附近的蓝牙外围设备 wx.getBluetoothDevices(OBJECT):获取在小程序蓝牙模块生效期间全部已发现的蓝牙设备,包括已经和本机处于链接状态的设备 wx.onBluetoothDeviceFound(CALLBACK):监听寻找到新设备的事件 wx.getConnectedBluetoothDevices(OBJECT):根据 uuid 获取处于已链接状态的设备 wx.createBLEConnection(OBJECT):链接低功耗蓝牙设备 wx.closeBLEConnection(OBJECT):断开与低功耗蓝牙设备的链接 wx.getBLEDeviceServices(OBJECT):获取蓝牙设备全部 service(服务) wx.getBLEDeviceCharacteristics(OBJECT):获取蓝牙设备某个服务中的全部 characteristic(特征值) wx.readBLECharacteristicValue(OBJECT):读取低功耗蓝牙设备的特征值的二进制数据值 wx.writeBLECharacteristicValue(OBJECT):向低功耗蓝牙设备特征值中写入二进制数据 wx.notifyBLECharacteristicValueChange(OBJECT):启用低功耗蓝牙设备特征值变化时的 notify 功能,订阅特征值 wx.onBLECharacteristicValueChange(CALLBACK):监听低功耗蓝牙设备的特征值变化 蓝牙错误码列表: 10000:未初始化蓝牙适配器 10001:当前蓝牙适配器不可用 10002:没有找到指定设备 10003:链接失败 10004:没有找到指定服务 10005:没有找到指定特征值 10006:当前链接已断开 10007:当前特征值不支持此操做 10008:其他全部系统上报的异常 10009:Android 系统特有,系统版本低于 4.3 不支持BLE

十、iBeacon wx.startBeaconDiscovery(OBJECT):开始搜索附近的iBeacon设备 wx.stopBeaconDiscovery(OBJECT):中止搜索附近的iBeacon设备 wx.getBeacons(OBJECT):获取全部已搜索到的iBeacon设备 wx.onBeaconUpdate(CALLBACK):监听 iBeacon 设备的更新事件 wx.onBeaconServiceChange(CALLBACK):监听 iBeacon 服务的状态变化

十一、屏幕亮度 wx.setScreenBrightness(OBJECT):设置屏幕亮度 wx.getScreenBrightness(OBJECT):获取屏幕亮度 wx.setKeepScreenOn(OBJECT):设置是否保持常亮状态

十二、用户截屏事件 wx.onUserCaptureScreen(CALLBACK):监听用户主动截屏事件,用户使用系统截屏按键截屏时触发此事件

1三、振动 wx.vibrateLong(OBJECT):使手机发生较长时间的振动(400ms) wx.vibrateShort(OBJECT):使手机发生较短期的振动(15ms)

1四、手机联系人 wx.addPhoneContact(OBJECT):调用后,用户能够选择将该表单以“新增联系人”或“添加到已有联系人”的方式,写入手机系统通信录,完成手机通信录联系人和联系方式的增长

1五、NFC wx.getHCEState(OBJECT):判断当前设备是否支持 HCE 能力 wx.startHCE(OBJECT):初始化 NFC 模块 wx.stopHCE(OBJECT):关闭 NFC 模块,仅在安卓系统下有效。 wx.onHCEMessage(CALLBACK):监听 NFC 设备的消息回调,并在回调中处理。 wx.sendHCEMessage(OBJECT):发送 NFC 消息,仅在安卓系统下有效。

1六、WiFi wx.startWifi(OBJECT):初始化 Wi-Fi 模块 wx.stopWifi(OBJECT):关闭 Wi-Fi 模块 wx.connectWifi(OBJECT):链接 Wi-Fi wx.getWifiList(OBJECT):请求获取 Wi-Fi 列表,在 onGetWifiList 注册的回调中返回 wifiList 数据 wx.onGetWifiList(CALLBACK):监听在获取到 Wi-Fi 列表数据时的事件,在回调中将返回 wifiList wx.setWifiList(OBJECT):iOS特有接口 在 onGetWifiList 回调后,利用接口设置 wifiList 中 AP 的相关信息 wx.onWifiConnected(CALLBACK):监听链接上 Wi-Fi 的事件 wx.getConnectedWifi(OBJECT):获取已链接中的 Wi-Fi 信息

7、界面:

一、交互反馈 wx.showToast(OBJECT):显示消息提示框 wx.showLoading(OBJECT):显示 loading 提示框, 需主动调用 wx.hideLoading 才能关闭提示框 wx.hideToast():隐藏消息提示框 wx.hideLoading():隐藏 loading 提示框 wx.showModal(OBJECT):显示模态弹窗 wx.showActionSheet(OBJECT):显示操做菜单

二、设置导航栏 wx.setNavigationBarTitle(OBJECT):动态设置当前页面的标题 wx.showNavigationBarLoading():在当前页面显示导航条加载动画 wx.hideNavigationBarLoading():隐藏导航条加载动画 wx.setNavigationBarColor(OBJECT):设置导航栏背景颜色

三、设置tabbar wx.setTabBarBadge(OBJECT):为 tabBar 某一项的右上角添加文本 wx.removeTabBarBadge(OBJECT):移除 tabBar 某一项右上角的文本 wx.showTabBarRedDot(OBJECT):显示 tabBar 某一项的右上角的红点 wx.hideTabBarRedDot(OBJECT):隐藏 tabBar 某一项的右上角的红点 wx.setTabBarStyle(OBJECT):动态设置 tabBar 的总体样式 wx.setTabBarItem(OBJECT):动态设置 tabBar 某一项的内容 wx.showTabBar(OBJECT):显示 tabBar wx.showTabBar(OBJECT):隐藏 tabBar

四、设置窗口背景 backgroundColor:动态设置窗口的背景色 wx.setBackgroundTextStyle(OBJECT):动态设置下拉背景字体、loading 图的样式

五、设置置顶信息 wx.setTopBarText(OBJECT):动态设置置顶栏文字内容,只有当前小程序被置顶时能生效,若是当前小程序没有被置顶,也能调用成功,可是不会当即生效,只有在用户将这个小程序置顶后才换上设置的文字内容

六、导航 wx.navigateTo(OBJECT):保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack能够返回到原页面 wx.redirectTo(OBJECT):关闭当前页面,跳转到应用内的某个页面 wx.switchTab(OBJECT):跳转到 tabBar 页面,并关闭其余全部非 tabBar 页面 wx.navigateBack(OBJECT):关闭当前页面,返回上一页面或多级页面 wx.reLaunch(OBJECT):关闭全部页面,打开到应用内的某个页面

七、动画 wx.createAnimation(OBJECT):建立一个动画实例animation

八、位置 wx.pageScrollTo(OBJECT):将页面滚动到目标位置

九、绘图 【1】API接口 createCanvasContext:建立 canvas 绘图上下文(指定 canvasId) createContext(不推荐使用):建立 canvas 绘图上下文 drawCanvas(不推荐使用):进行绘图 canvasToTempFilePath:导出图片

【2】context 对象的方法列表 《1》颜色,样式,阴影 《2》渐变 《3》线条样式 《4》矩形 《5》路径 《6》变形 《7》文字 《8》图片 《9》混合 《10》其余

【4】使用步骤 第一步:建立一个 Canvas 绘图上下文 第二步:使用 Canvas 绘图上下文进行绘图描述 第三步:画图 wx.createCanvasContext(canvasId, this):建立 canvas 绘图上下文(指定 canvasId) wx.createContext :建立并返回绘图上下文(不推荐使用) drawCanvas:用所提供的 actions 在所给的 canvas-id 对应的 canvas 上进行绘图(不推荐使用) wx.canvasToTempFilePath(OBJECT, this):把当前画布指定区域的内容导出生成指定大小的图片,并返回文件路径。 wx.canvasGetImageData(OBJECT, this):返回一个数组,用来描述 canvas 区域隐含的像素数据 wx.canvasPutImageData(OBJECT, this):将像素数据绘制到画布的方法 canvasContext.setFillStyle:设置填充色 canvasContext.setStrokeStyle:设置边框颜色 canvasContext.setShadow:设置阴影样式 canvasContext.createLinearGradient:建立一个线性的渐变颜色 canvasContext.createCircularGradient:建立一个圆形的渐变颜色 canvasContext.addColorStop:建立一个颜色的渐变点 canvasContext.setLineWidth:设置线条的宽度 canvasContext.setLineCap:设置线条的端点样式 canvasContext.setLineJoin:设置线条的交点样式 canvasContext.setLineDash:设置虚线样式的方法 canvasContext.setMiterLimit:设置最大斜接长度,斜接长度指的是在两条线交汇处内角和外角之间的距离, 当 setLineJoin() 为 miter 时才有效。超过最大倾斜长度的,链接处将以 lineJoin 为 bevel 来显示 canvasContext.rect:建立一个矩形 canvasContext.fillRect:填充一个矩形 canvasContext.strokeRect:画一个矩形(非填充) canvasContext.clearRect:清除画布上在该矩形区域内的内容 canvasContext.fill:对当前路径中的内容进行填充。默认的填充色为黑色 canvasContext.stroke:画出当前路径的边框。默认颜色为黑色 canvasContext.beginPath:开始建立一个路径,须要调用fill或者stroke才会使用路径进行填充或描边 canvasContext.closePath:关闭一个路径 canvasContext.moveTo:把路径移动到画布中的指定点,不建立线条 canvasContext.lineTo:lineTo 方法增长一个新点,而后建立一条从上次指定点到目标点的线 canvasContext.arc:画一条弧线 canvasContext.bezierCurveTo:建立三次方贝塞尔曲线路径 canvasContext.quadraticCurveTo:建立二次贝塞尔曲线路径 canvasContext.scale:在调用scale方法后,以后建立的路径其横纵坐标会被缩放。屡次调用scale,倍数会相乘。 canvasContext.rotate:以原点为中心,原点能够用 translate方法修改。顺时针旋转当前坐标轴。屡次调用rotate,旋转的角度会叠加。 canvasContext.translate:对当前坐标系的原点(0, 0)进行变换,默认的坐标系原点为页面左上角 canvasContext.clip:clip() 方法从原始画布中剪切任意形状和尺寸 canvasContext.setFontSize:设置字体的字号 canvasContext.fillText:在画布上绘制被填充的文本 canvasContext.setTextAlign:用于设置文字的对齐 canvasContext.setTextBaseline:用于设置文字的水平对齐 canvasContext.drawImage:绘制图像到画布 canvasContext.setGlobalAlpha:设置全局画笔透明度 canvasContext.save:保存当前的绘图上下文 canvasContext.restore:恢复以前保存的绘图上下文 canvasContext.draw:将以前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中 canvasContext.getActions:返回绘图上下文的绘图动做 (不推荐使用) canvasContext.clearActions:清空绘图上下文的绘图动做 (不推荐使用) canvasContext.measureText:测量文本尺寸信息,目前仅返回文本宽度 canvasContext.globalCompositeOperation:该属性是设置要在绘制新形状时应用的合成操做的类型。 canvasContext.arcTo:根据控制点和半径绘制圆弧路径 canvasContext.strokeText:给定的 (x, y) 位置绘制文本描边的方法 canvasContext.lineDashOffset:设置虚线偏移量的属性 canvasContext.createPattern:对指定的图像建立模式的方法,可在指定的方向上重复元图像 canvasContext.shadowBlur:设置阴影的模糊级别 canvasContext.shadowColor:设置阴影的颜色 canvasContext.shadowOffsetX:设置阴影相对于形状在水平方向的偏移 canvasContext.shadowOffsetY:设置阴影相对于形状在竖直方向的偏移 canvasContext.font:设置当前字体样式的属性 canvasContext.transform:使用矩阵屡次叠加当前变换的方法 canvasContext.transform:使用矩阵屡次叠加当前变换的方法 canvasContext.setTransform:使用矩阵从新设置(覆盖)当前变换的方法

十、下拉刷新 Page.onPullDownRefresh():在 Page 中定义 onPullDownRefresh 处理函数,监听该页面用户下拉刷新事件 wx.startPullDownRefresh(OBJECT):开始下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致 wx.stopPullDownRefresh():中止当前页面下拉刷新

十一、WXML节点信息 wx.createSelectorQuery():返回一个SelectorQuery对象实例 selectorQuery.in(component):将选择器的选取范围更改成自定义组件component内 selectorQuery.select(selector):在当前页面下选择第一个匹配选择器selector的节点,返回一个NodesRef对象实例,能够用于获取节点信息 selectorQuery.selectAll(selector):在当前页面下选择匹配选择器selector的节点,返回一个NodesRef对象实例。 与selectorQuery.select(selector)不一样的是,它选择全部匹配选择器的节点。 selectorQuery.selectViewport():选择显示区域,可用于获取显示区域的尺寸、滚动位置等信息,返回一个NodesRef对象实例。 nodesRef.boundingClientRect([callback]):添加节点的布局位置的查询请求,相对于显示区域,以像素为单位。其功能相似于DOM的getBoundingClientRect。返回值是nodesRef对应的selectorQuery。 nodesRef.scrollOffset([callback]):添加节点的滚动位置查询请求,以像素为单位。节点必须是scroll-view或者viewport。返回值是nodesRef对应的selectorQuery。 nodesRef.fields(fields, [callback]):获取节点的相关信息,须要获取的字段在fields中指定。返回值是nodesRef对应的selectorQuery。 selectorQuery.exec([callback]):执行全部的请求,请求结果按请求次序构成数组,在callback的第一个参数中返回。

十二、WXML节点布局相交状态 (节点布局交叉状态API可用于监听两个或多个组件节点在布局位置上的相交状态。这一组API经常能够用于推断某些节点是否能够被用户看见、有多大比例能够被用户看见)

wx.createIntersectionObserver([this], [options]):建立并返回一个 IntersectionObserver 对象实例 intersectionObserver.relativeTo(selector, [margins]):使用选择器指定一个节点,做为参照区域之一。 margins 能够用来扩展(或收缩)参照节点布局区域的边界,可包含 left 、 right 、 top 、 bottom 四项。 intersectionObserver.relativeToViewport([margins]):指定页面显示区域做为参照区域之一。 margins 能够用来扩展(或收缩)参照节点布局区域的边界,可包含 left 、 right 、 top 、 bottom 四项。 intersectionObserver.observe(targetSelector, callback):指定目标节点并开始监听相交状态变化状况。回调函数 callback 包含一个参数 result。 intersectionObserver.disconnect():中止监听。回调函数将再也不触发。

8、第三方平台:

wx.getExtConfig(OBJECT):获取第三方平台自定义的数据字段。 wx.getExtConfigSync():获取第三方平台自定义的数据字段的同步接口。

9、开放接口:

一、登陆 wx.login(OBJECT):调用接口wx.login() 获取临时登陆凭证(code) 用户数据的签名验证和加解密 《1》数据签名校验 《2》加密数据解密算法 《3》会话密钥session_key有效性 wx.checkSession(OBJECT):校验用户当前session_key是否有效

二、受权 《1》获取受权信息 《2》打开设置界面 《3》提早发起受权请求 wx.authorize(OBJECT):提早向用户发起受权请求

三、用户信息 【1】接口 wx.getUserInfo(OBJECT):一、当用户未受权过,调用该接口将直接报错,二、当用户受权过,可使用该接口获取用户信息 getPhoneNumber(OBJECT):获取微信用户绑定的手机号,需先调用login接口 【2】UnionID机制说明 《1》简介 若是开发者拥有多个移动应用、网站应用、和公众账号(包括小程序),可经过unionid来区分用户的惟一性,由于只要是同一个微信开放平台账号下的移动应用、网站应用和公众账号(包括小程序),用户的unionid是惟一的。换句话说,同一用户,对同一个微信开放平台下的不一样应用,unionid是相同的。 《2》UnionID获取途径 1.调用接口wx.getUserInfo,从解密数据中获取UnionID。注意本接口须要用户受权,请开发者妥善处理用户拒绝受权后的状况。 2.若是开发者账号下存在同主体的公众号,而且该用户已经关注了该公众号。开发者能够直接经过wx.login获取到该用户UnionID,无须用户再次受权。 3.若是开发者账号下存在同主体的公众号或移动应用,而且该用户已经受权登陆过该公众号或移动应用。开发者也能够直接经过wx.login获取到该用户UnionID,无须用户再次受权。 《3》微信开放平台绑定小程序流程 登陆微信开放平台 —》 账号中心 —》 开发者资质认证 《4》绑定流程 登陆微信开放平台 —》 管理中心 —》 公众账号 —》绑定公众账号

四、微信支付 wx.requestPayment(OBJECT):发起微信支付

五、接口调用凭证 【1】简介 access_token 是全局惟一接口调用凭据,开发者调用各接口时都需使用 access_token,请妥善保存。access_token 的存储至少要保留512个字符空间。access_token 的有效期目前为2个小时,需定时刷新,重复获取将致使上次获取的 access_token 失效。

【2】access_token 的使用及生成方式说明: 《1》为了保密 appsecrect,第三方须要一个 access_token 获取和刷新的中控服务器。而其余业务逻辑服务器所使用的 access_token 均来自于该中控服务器,不该该各自去刷新,不然会形成 access_token 覆盖而影响业务; 《2》目前 access_token 的有效期经过返回的 expires_in 来传达,目前是7200秒以内的值。中控服务器须要根据这个有效时间提早去刷新新 access_token。在刷新过程当中,中控服务器对外输出的依然是老 access_token,此时公众平台后台会保证在刷新短期内,新老 access_token 均可用,这保证了第三方业务的平滑过渡; 《3》access_token 的有效时间可能会在将来有调整,因此中控服务器不只须要内部定时主动刷新,还须要提供被动刷新 access_token 的接口,这样便于业务服务器在 API 调用获知 access_token 已超时的状况下,能够触发 access_token 的刷新流程。

六、模板消息 【1】使用说明 步骤一:获取模板ID(1.经过模版消息管理接口获取模版ID,2.在微信公众平台手动配置获取模版ID) 步骤二:页面的 

 组件,属性report-submit为true时,能够声明为需发模板消息,此时点击按钮提交表单能够获取formId,用于发送模板消息。或者当用户完成支付行为,能够获取prepay_id用于发送模板消息。 步骤三:调用接口下发模板消息

【2】模板消息管理 《1》获取小程序模板库标题列表 《2》获取模板库某个模板标题下关键词库 《3》组合模板并添加至账号下的我的模板库 《4》获取账号下已存在的模板列表 《5》删除账号下的某个模板

【3】发送模板消息 《1》下发条件说明(1.支付,2.提交表单) 《2》审核说明(1.标题,2.关键词,3.违规说明,4.处罚说明)

七、客服消息 【1】接收消息和事件 《1》文本消息 《2》图片消息 《3》小程序卡片消息 《4》进入会话事件 【2】发送客服消息 【3】转发消息

【4】临时素材接口 《1》获取临时素材 《2》新增临时素材 【5】客服输入状态 【6】接入指引 《1》填写服务器配置 《2》验证消息的确来自微信服务器 《3》依据接口文档实现业务逻辑

八、转发 Page.onShareAppMessage(Object):自定义该页面的转发内容 wx.showShareMenu(OBJECT):显示当前页面的转发按钮 wx.hideShareMenu(OBJECT):隐藏转发按钮 wx.updateShareMenu(OBJECT):更新转发属性 wx.getShareInfo(OBJECT):获取转发详细信息 获取更多转发信息、页面内发起转发、使用指引

九、获取二维码 【1】获取小程序码 咱们推荐生成并使用小程序码,它具备更好的辨识度。目前有两个接口能够生成小程序码,开发者能够根据本身的须要选择合适的接口。  A接口,生成小程序码,可接受path参数较长,生成个数受限。适用于须要的码数量较少的业务场景  B接口,生成小程序码,可接受页面参数较短,生成个数不受限。适用于须要的码数量极多的业务场景

【2】获取小程序二维码 C接口,生成小程序二维码,可接受path参数较长,生成个数受限。适用于须要的码数量较少的业务场景

【3】注意 《1》经过该接口,仅能生成已发布的小程序的二维码。 《2》能够在开发者工具预览时生成开发版的带参二维码。 《3》接口A加上接口C,总共生成的码数量限制为100,000,请谨慎调用。 《4》POST 参数须要转成 json 字符串,不支持 form 表单提交。 《5》auto_color line_color 参数仅对小程序码生效。

十、收货地址 wx.chooseAddress(OBJECT):调起用户编辑收货地址原生界面,并在编辑完成后返回用户选择的地址。

十一、卡券 wx.addCard(OBJECT):批量添加卡券 wx.openCard(OBJECT):查看微信卡包中的卡券 使用会员卡组件,开发者直接调用步骤以下: 1.建立一张微信会员卡并设置为一键激活模式; 2.设置开卡字段; 3.获取开卡组件参数;

十二、设置 wx.openSetting(OBJECT):调起客户端小程序设置界面,返回用户设置的操做结果。(此接口即将废弃) wx.getSetting(OBJECT):获取用户的当前设置

1三、微信运动 wx.getWeRunData(OBJECT):获取用户过去三十天微信运动步数,须要先调用 wx.login 接口。

1四、当前帐号信息 wx.getAccountInfoSync():访问当前小程序或插件账号信息

1五、打开小程序 wx.navigateToMiniProgram(OBJECT):打开同一公众号下关联的另外一个小程序 wx.navigateBackMiniProgram(OBJECT):返回到上一个小程序,只有在当前小程序是被其余小程序打开时能够调用成功

1六、打开App 在一个小程序的生命周期内,只有在特定条件下,才具备打开 APP 的能力。 打开 APP 的能力 能够理解为由小程序框架在内部管理的一个状态,为 true 则能够打开 APP,为 false 则不能够打开 APP。

1七、获取发票抬头 wx.chooseInvoiceTitle(OBJECT):选择用户的发票抬头

1八、生物认证 wx.checkIsSupportSoterAuthentication(OBJECT):获取本机支持的 SOTER 生物认证方式 wx.startSoterAuthentication(OBJECT):开始 SOTER 生物认证 wx.checkIsSoterEnrolledInDevice(OBJECT):获取设备内是否录入如指纹等生物信息的接口

1九、附近 《1》添加地点 《2》查看地点列表 《3》删除地点 《4》展现/取消展现附近小程序

20、插件管理 小程序开发者可经过如下接口管理插件,包括:添加、删除、查询已添加的插件。插件开发者也可调用接口管理插件使用申请。 《1》申请使用插件 《2》查询已添加的插件 《3》删除已添加的插件 《4》获取当前全部插件使用方(供插件开发者调用) 《5》修改插件使用申请的状态(供插件开发者调用)

2一、内容安全 wx.imgSecCheck:校验一张图片是否含有违法违规内容 wx.msgSecCheck:检查一段文本是否含有违法违规内容

10、数据:

一、常规分析 【1】简介 用户访问小程序的详细数据可从访问分析中获取,概况中提供累计用户数等部分指标数据

【2】访问分析 《1》访问趋势 《2》访问分布 《3》访问留存 《4》访问页面

【3】用户画像 获取小程序新增或活跃用户的画像分布数据。时间范围支持昨天、最近7天、最近30天。其中,新增用户数为时间范围内首次访问小程序的去重用户数,活跃用户数为时间范围内访问太小程序的去重用户数。画像属性包括用户年龄、性别、省份、城市、终端类型、机型。

二、自定义分析 wx.reportAnalytics(eventName, data):自定义分析数据上报接口

11、更新:

wx.getUpdateManager():获取全局惟一的版本更新管理器,用于管理小程序更新。关于小程序的更新机制,能够查看 运行机制 文档。

12、多线程:

wx.createWorker(scriptPath):在使用 createWorker 前,请查阅 多线程 文档了解基础知识和配置方法。建立一个 Worker 线程,并返回 Worker 实例,目前限制最多只能建立一个 Worker,建立下一个 Worker 前请调用 Worker.terminate。scriptPath 为 worker 的入口文件路径,需填写绝对路径。

十3、监控:

wx.reportMonitor(name, value):自定义业务数据监控上报接口 小程序管理后台 —》 运维中心 —》 性能监控 —》 业务数据监控中 —》新建监控事件

十4、调试接口:

wx.setEnableDebug(OBJECT):设置是否打开调试开关,此开关对正式版也能生效。

十5、日志:

wx.getLogManager():获取日志管理器 logManager 对象 《1》logManager提供log、info、warn、debug四个方法写日志到文件,这四个方法接受任意个类型为Object/Array/Number/String的参数,每次调用的参数的总大小不超过100Kb。最多保存5M的日志内容,超过5M后,旧的日志内容会被删除。 《2》过设置Button组件 的open-type为feedback来上传打印的日志。用户上传的日志能够经过登陆小程序管理后台后进入左侧菜单“客服反馈”页面获取到。 基础库默认会把App、Page的生命周期函数和wx命名空间下的函数调用写入日志。