4-微信小程序API

一、网络:

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

《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;在回到前台之前,网络请求接口调用都会无法调用。

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

2、发起请求 wx.request(OBJECT):发起网络请求

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

4、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() 接口创建返回

二、媒体:

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

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

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

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

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

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

7、音频组件控制 wx.createAudioContext(audioId, this):创建并返回 audio 上下文 audioContext 对象。在自定义组件下,第二个参数传入组件实例this,以操作组件内  组件 wx.createInnerAudioContext():创建并返回内部 audio 上下文 innerAudioContext 对象。本接口是 wx.createAudioContext 升级版。 wx.getAvailableAudioSources(OBJECT):获取当前支持的音频输入源

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

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

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

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

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

三、文件:

1、普通操作 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

2、文件管理器 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 的同步版本

四、数据缓存:

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

2、本地缓存 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

五、位置:

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

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

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

六、设备:

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

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

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

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

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

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

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

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

9、蓝牙 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

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

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

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

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

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

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

16、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 信息

七、界面:

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

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

3、设置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

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

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

6、导航 wx.navigateTo(OBJECT):保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面 wx.redirectTo(OBJECT):关闭当前页面,跳转到应用内的某个页面 wx.switchTab(OBJECT):跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 wx.navigateBack(OBJECT):关闭当前页面,返回上一页面或多级页面 wx.reLaunch(OBJECT):关闭所有页面,打开到应用内的某个页面

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

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

9、绘图 【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:使用矩阵重新设置(覆盖)当前变换的方法

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

11、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的第一个参数中返回。

12、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():停止监听。回调函数将不再触发。

八、第三方平台:

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

九、开放接口:

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

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

3、用户信息 【1】接口 wx.getUserInfo(OBJECT):1、当用户未授权过,调用该接口将直接报错,2、当用户授权过,可以使用该接口获取用户信息 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》绑定流程 登录微信开放平台 —》 管理中心 —》 公众帐号 —》绑定公众帐号

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

5、接口调用凭证 【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 的刷新流程。

6、模板消息 【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.处罚说明)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

十、数据:

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

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

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

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

十一、更新:

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

十二、多线程:

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

十三、监控:

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

十四、调试接口:

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

十五、日志:

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

你可能感兴趣的:(网络,移动开发,人工智能)