简述 18.8.18 现有的微信小程序API能做什么
小程序能力竟恐怖如斯----
// 用于简述API能力 var obj = { 网络: ["发起请求", "上传/下载", "WebSocket"],
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
媒体: { 图片: [ "从本地相册选择图片或使用相机拍照", "预览图片", "获取图片信息,倘若为网络图片,需先配置download域名才能生效", "保存图片到系统相册", // 需要用户授权 ], 录音: [ "开始录音", // 最长一分钟 "结束录音", ], 录音管理: "获取全局唯一的录音管理器", 音频播放控制: [ "开始播放语音", "暂停正在播放的语音", "结束播放语音", ], 音乐播放控制: [ "获取后台音乐播放状态", "使用后台播放器播放音乐", "暂停播放音乐", "控制音乐播放进度", "停止播放音乐", "监听音乐播放", "监听音乐暂停", "监听音乐停止", ], 背景音频播放管理: "获取全局唯一的背景音频管理器", 音频组件控制: [ "创建并返回 audio 对象", // 让组件可控-播放-跳到多少秒 "创建并返回内部 audio ", "获取当前支持的音频输入源", ], 视频: [ "拍摄视频或从手机相册中选视频", "保存视频到系统相册", ], 视频组件控制: "创建并返回 video 对象", 拍照组件控制: "创建并返回 camera 对象", 实时音视频: [ "操作对应的 <live-player/> 组件", "创建并返回 live-pusher 对象", ], 动态加载网络字体: "动态加载网络字体", },
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
文件: { "保存文件到本地", "获取文件信息", "获取本地已保存的文件列表", "获取本地文件的文件信息", "删除本地存储的文件", "新开页面打开文档", 文件管理器: [ "文件管理器", "获取全局唯一的文件管理器", "在文件结尾追加内容", "判断文件/目录是否存在", "FileSystemManager.access 的同步版本", "FileSystemManager.appendFile 的同步版本", "复制文件", "FileSystemManager.copyFile 的同步版本", "获取该小程序下已保存的本地缓存文件列表", "获取该小程序下的 本地临时文件 或 本地缓存文件 信息", "创建目录", "FileSystemManager.mkdir 的同步版本", "删除该小程序下已保存的本地缓存文件", "FileSystemManager.readFile 的同步版本", "FileSystemManager.rename 的同步版本", "FileSystemManager.rmdir 的同步版本", "读取目录内文件列表", "重命名文件,可以把文件从 oldPath 移动到 newPath", "读取本地文件内容", "删除目录", "FileSystemManager.readdir 的同步版本", "保存临时文件到本地", "FileSystemManager.saveFile 的同步版本", "获取文件 Stats 对象", "FileSystemManager.stat 的同步版本", "描述文件状态的对象", "判断当前文件是否一个目录", "判断当前文件是否一个普通文件", "删除文件", "解压文件", "FileSystemManager.unlink 的同步版本", "写文件", "FileSystemManager.writeFile 的同步版本", ] },
数据缓存: [ "将数据存储在本地缓存中指定的 key 中", "将 data 存储在本地缓存中指定的 key 中", "从本地缓存中异步获取指定 key 对应的内容", "从本地缓存中同步获取指定 key 对应的内容", "异步获取当前storage的相关信息", "同步获取当前storage的相关信息", "从本地缓存中异步移除指定 key", "从本地缓存中同步移除指定 key ", "清理本地数据缓存", "同步清理本地数据缓存", ], 位置: { 获取位置: [ "获取当前的地理位置、速度。当用户离开小程序后", "打开地图选择位置", // 这个略叼 ], 查看位置: "使用微信内置地图查看位置", 地图组件控制: "创建并返回 map 上下文 mapContext 对象", },
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
设备: { 系统信息: [ "获取系统信息", "获取系统信息同步接口", "判断小程序的API,回调,参数,组件等是否在当前版本可用", ], 内存: "监听内存不足的告警事件", 网络状态: [ "获取网络类型", "监听网络状态变化", ], 加速度计: [ "监听加速度数据,频率:5次/秒,接口调用后会自动开始监听", "开始监听加速度数据", "停止监听加速度数据", ], 罗盘: [ "监听罗盘数据,频率:5次/秒,接口调用后会自动开始监听", "开始监听罗盘数据", "停止监听罗盘数据", ], 拨打电话: "wx.makePhoneCall({phoneNumber: 121212})", 扫码: "调起客户端扫码界面,扫码成功后返回对应的结果", 剪切板: [ "设置系统剪贴板的内容", "获取系统剪贴板内容" ], 蓝牙: [ "初始化小程序蓝牙模块", // 有生命周期 "关闭蓝牙模块", "获取本机蓝牙适配器状态", "监听蓝牙适配器状态变化事件", "开始搜寻附近的蓝牙外围设备", "停止搜寻附近的蓝牙外围设备", "获取在小程序蓝牙模块生效期间所有已发现的蓝牙设备,包括已经和本机处于连接状态的设备", "根据 uuid 获取处于已连接状态的设备", "连接低功耗蓝牙设备", "断开与低功耗蓝牙设备的连接", "获取蓝牙设备所有 service", "监听低功耗蓝牙设备的特征值变化", "错误码" ], iBeacon: [ // 相当比较新的技术,里面还有巨大的挖掘空间 "开始搜索附近的iBeacon设备", "停止搜索附近的iBeacon设备", "获取所有已搜索到的iBeacon设备", "监听 iBeacon 设备的更新事件", "监听 iBeacon 服务的状态变化", ], 屏幕亮度: [ "设置屏幕亮度", "获取屏幕亮度", "设置是否保持常亮状态", ], 用户截屏事件: "监听用户主动截屏事件,用户使用系统截屏按键截屏时触发此事件", 振动: [ "使手机发生较长时间的振动(400ms)", "使手机发生较短时间的振动(15ms)", // 这个只支持部分机型 ], 手机联系人: "调用后,用户可以选择将该表单以“新增联系人”或“添加到已有联系人”的方式", NFC: [ // NFC近场通信技术 "判断当前设备是否支持 HCE 能力", // HCE(Host-based Card Emulation),即基于主机的卡模拟, 白话文就是模拟信用卡呀公交卡呀之类的功能。 "初始化 NFC 模块", "关闭 NFC 模块。仅在安卓系统下有效", "监听 NFC 设备的消息回调", "发送 NFC 消息。仅在安卓系统下有效", ], Wi-Fi: [ "初始化 Wi-Fi 模块", "关闭 Wi-Fi 模块", "连接 Wi-Fi", "请求获取 Wi-Fi 列表", "监听在获取到 Wi-Fi 列表数据时的事件", "iOS特有接口 在 onGetWifiList 回调后,利用接口设置 wifiList 中 AP 的相关信息", "监听连接上 Wi-Fi 的事件", "获取已连接中的 Wi-Fi 信息", ], },
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
界面: { 交互反馈: [ "显示消息提示框", "显示 loading 提示框, 需主动调用 wx.hideLoading 才能关闭提示框", "隐藏消息提示框", "隐藏 loading 提示框", "显示模态弹窗", "显示操作菜单", ], 设置导航条: [ "动态设置当前页面的标题", "在当前页面显示导航条加载动画", "隐藏导航条加载动画", "导航条渐变设置", ], 设置tabBar: [ "为 tabBar 某一项的右上角添加文本", "移除 tabBar 某一项右上角的文本", "显示 tabBar 某一项的右上角的红点", "隐藏 tabBar 某一项的右上角的红点", "动态设置 tabBar 的整体样式", "动态设置 tabBar 某一项的内容", "显示 tabBar", "隐藏 tabBar", ], 设置窗口背景: [ "动态设置窗口的背景色", "动态设置下拉背景字体、loading 图的样式", ], 设置置顶消息: "动态设置置顶栏文字内容,只有当前小程序被置顶时能生效", 导航: [ "保留当前页面,跳转到应用内的某个页面", "关闭当前页面,跳转到应用内的某个页面", "跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面", "关闭当前页面,返回上一页面或多级页面", "关闭所有页面,打开到应用内的某个页面", // 重启动,可以跳转所以页面-包括tabBar ], 动画: "创建动画", 位置: "将页面滚动到目标位置", 绘图: [ "和JavaScript一样,巨多内容,可自行观看", ], 下拉刷新: [ "在 Page 中定义 onPullDownRefresh 处理函数,监听该页面用户下拉刷新事件", "开始下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致", "停止当前页面下拉刷新", ], WXML节点信息: [ "返回一个SelectorQuery对象实例。可以在这个实例上使用select等方法选择节点", // query.select('#the-id') "将选择器的选取范围更改为自定义组件component内", "在当前页面下选择第一个匹配选择器selector的节点", "在当前页面下选择匹配选择器selector的节点", "选择显示区域,可用于获取显示区域的尺寸、滚动位置等信息,返回一个NodesRef对象实例", "添加节点的布局位置的查询请求", "添加节点的滚动位置查询请求", "获取节点的相关信息", "执行所有的请求,请求结果按请求次序构成数组,在callback的第一个参数中返回", ], WXML节点布局相交状态: [ // 节点布局交叉状态API可用于监听两个或多个组件节点在布局位置上的相交状态。这一组API常常可以用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见。 "创建并返回一个 IntersectionObserver 对象实例", "使用选择器指定一个节点,作为参照区域之一", "指定页面显示区域作为参照区域之一", "指定目标节点并开始监听相交状态变化情况", "停止监听。回调函数将不再触发", ], },
第三方平台: [ "获取第三方平台自定义的数据字段", "获取第三方平台自定义的数据字段的同步接口", ],
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
开放接口: { 登录: [ "调用接口wx.login() 获取临时登录凭证(code)", "校验用户当前session_key是否有效", ], 授权: "提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据", 用户信息: [ '使用该接口将不再出现授权弹窗,请使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作', "获取微信用户绑定的手机号,需先调用login接口", // 需要使用button按钮授权 "通过unionid来区分用户的唯一性", // 多平台(小程序,公众号等)时使用。 ], 微信支付: "发起微信支付", 接口调用凭证: "公众平台的 API 调用所需的 access_token", 模板信息: "详细查看官方红皮书", // 例如--支付完成后回复的支付成功通知。 客服消息: [ "详情查官方文档" ], 转发: [ "在 Page 中定义 onShareAppMessage 事件处理函数,自定义该页面的转发内容", // init,只有定义了转发内容才可以发起转发请求 "显示当前页面的转发按钮", "隐藏转发按钮", "更新转发属性", "获取转发详细信息", "通常开发者希望转发出去的小程序被二次打开的时候能够获取到一些信息,例如群的标识。现在通过调用 wx.showShareMenu 并且设置 withShareTicket 为 true ,当用户将小程序转发到任一群聊之后,此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch() 或 App.onShow 获取到一个 shareTicket", '通过给 button 组件设置属性 open-type="share",可以在用户点击按钮后触发 Page.onShareAppMessage() 事件', ], 获取二维码: "通过后台接口可以获取小程序任意页面的二维码", 收货地址: "调起用户编辑收货地址原生界面,并在编辑完成后返回用户选择的地址", 卡券: [ "批量添加卡券", "查看微信卡包中的卡券", "开发者可以在小程序内调用该接口拉起会员开卡组件,方便用户快速填写会员注册信息并领卡", // navigateToMiniProgram接口即将废弃,新版本中请使用<navigator>组件来使用此功能 ], 设置: [ "调起客户端小程序设置界面,返回用户设置的操作结果",// 此接口即将废弃,请使用 <button> 组件来使用此功能 "获取用户的当前设置", ], 微信运动: "获取用户过去三十天微信运动步数,需要先调用 wx.login 接口", 当前账号信息: "访问当前小程序或插件帐号信息", 打开小程序: [ "打开同一公众号下关联的另一个小程序。(注:必须是同一公众号下,而非同个 open 账号下)", "返回到上一个小程序,只有在当前小程序是被其他小程序打开时可以调用成功", ], 打开APP: "需要将 <button> 组件 open-type 的值设置为 launchApp", 获取发票抬头: "选择用户的发票抬头", 生物认证: [ "获取本机支持的 SOTER 生物认证方式", // 比如指纹识别,人脸识别等 "开始 SOTER 生物认证", "获取设备内是否录入如指纹等生物信息的接口", ], 附件: "添加,展示附件小程序等,详情请查看官方文档", 插件管理, 内容安全: [ "校验一张图片是否含有违法违规内容", // imgSecCheck "检查一段文本是否含有违法违规内容", // msgSecCheck ], },
数据: { "用户画像,访问趋势等内容,详情请查看官方文档" }, 更新: "获取全局唯一的版本更新管理器,用于管理小程序更新", 多线程: "创建一个 Worker 线程,并返回 Worker 实例,目前限制最多只能创建一个 Worke", 监控: "自定义业务数据监控上报接口", // 最多128个监控事件 调试接口: "设置是否打开调试开关", 日志: "获取日志管理器", }