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) 步骤二:页面的