API 列表

API 错误码

网络

API 名称解释
swan.request发起网络请求
swan.uploadFile将本地资源上传到开发者服务器,客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data 如页面通过 swan.chooseImage 等接口获取到一个本地资源的临时文件路径后,可通过此接口将本地资源上传到指定服务器。
swan.downloadFile下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径。
swan.connectSocket创建一个 WebSocket 连接。
swan.onSocketOpen监听 WebSocket 连接打开事件。
swan.onSocketError监听 WebSocket 错误
swan.sendSocketMessage通过 WebSocket 连接发送数据,需要先调用 swan.connectSocket,并在 swan.onSocketOpen 回调之后才能发送。
swan.onSocketMessage监听 WebSocket 接受到服务器的消息事件。
swan.closeSocket关闭 WebSocket 连接,须在 WebSocket 打开期间调用 swan.closeSocket 才能关闭。
swan.onSocketClose监听 WebSocket 关闭。
SocketTaskWebSocket 任务,可通过 swan.connectSocket() 接口创建返回。

AI

API 名称解释
swan.ai.ocrIdCard用户向服务请求识别身份证,身份证识别包括正面和背面。
swan.ai.ocrBankCard识别银行卡并返回卡号、发卡行和卡片类型。
swan.ai.ocrDrivingLicense对机动车驾驶证所有关键字段进行识别。
swan.ai.ocrVehicleLicense对机动车行驶证正本所有关键字段进行识别。
swan.ai.textReview运用业界领先的深度学习技术,判断一段文本内容是否符合网络发文规范,实现自动化、智能化的文本审核。
swan.ai.textToAudio将文本转换为可以播放的 mp3 文件。
swan.ai.imageAudit自定义图像审核。
swan.ai.advancedGeneralIdentify通用物体及场景识别,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中的多个物体及场景标签。
swan.ai.objectDetectIdentify用户向服务请求检测图像中的主体位置。
swan.ai.carClassify用于检测一张车辆图片的具体车型,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片的车辆品牌及型号、颜色及年份、位置信息。
swan.ai.dishClassify用于菜品识别,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片的菜品名称、卡路里信息、置信度。
swan.ai.logoClassify用于检测和识别图片中的品牌 LOGO 信息。即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中 LOGO 的名称、位置和置信度。 当效果欠佳时,可以建立子库(在控制台创建应用并申请建库)并通过调用 logo 入口接口完成自定义 logo 入库,提高识别效果。
swan.ai.animalClassify该请求用于识别一张图片,即对于输入的一张图片(可正常解码,且长宽比较合适),输出动物识别结果。
swan.ai.plantClassify该请求用于识别一张图片,即对于输入的一张图片(可正常解码,且长宽比较合适),输出植物识别结果。
swan.ai.getVoiceRecognizer获取全局唯一的语音识别器voiceRecognizer。
swan.ai.faceDetect人脸检测,检测图片中的人脸并标记出相应的信息位置,同时可以展示出人脸的关键信息和属性信息,比如年龄,性别等。
swan.ai.faceMatch人脸对比,支持两张人脸图片的相似度对比,图片类型可以为:生活照,证件照,身份证芯片照或者带网纹照。
swan.ai.faceSearch人脸搜索,传入人脸图片,支持在指定人脸图片集合中,找到与传入图片中人脸最为相似的图片。
swan.ai.facePersonVerify公安验证,基于姓名和身份证号,调取公民身份证小图(源自公安系统),将当前获取的人脸图片,与此证件小图进行对比,得出比对分数。
swan.ai.facePersonIdmatch身份证和名字对比,验证用户输入的身份证号码和姓名是否匹配,用于判断用户信息是否真实。
swan.ai.faceLivenessSessioncodeH5活体检测-语音校验码,为防止用户提交非当前操作的视频,在录制视频时,随机分配一个数字,用户需要读出这个数字,在后续识别时校验,以判断视频是否为现场录制。
swan.ai.nlpLexerCustom词法分析,提供分词、词性标注、专名识别三大功能。

媒体

API 名称解释
swan.chooseImage从本地相册选择图片或使用相机拍照。
swan.previewImage预览图片
swan.getImageInfo获取图片信息
swan.compressImage压缩图片接口
swan.saveImageToPhotosAlbum保存图片到系统相册,需要用户授权。
swan.chooseAlbum打开本地相册,相册内可以同时包含图片和视频。
swan.getRecorderManager获取全局唯一的录音管理器recorderManager。
swan.getAvailableAudioSources获取当前支持的音频输入源
swan.getBackgroundAudioManager获取全局唯一的背景音频管理器 backgroundAudioManager。
swan.createInnerAudioContext创建并返回内部 audio 上下文 innerAudioContext 对象。
swan.setInnerAudioOption对innerAudioContext进行小程序内部的全局设置。
swan.chooseVideo拍摄视频或从手机相册中选视频,返回视频的临时文件路径。
swan.saveVideoToPhotosAlbum保存视频到系统相册。需要用户授权。
swan.createVideoContext创建并返回 video 上下文 videoContext 对象。通过 videoId 跟一个 video 组件绑定,通过它可以操作一个 video 组件。
swan.createAnimationVideo创建并返回 animation-video 上下文 animationVideo 对象。通过 animationVideoId 跟一个 animation-video 组件绑定,通过它可以操作一个 animation-video 组件。
swan.createLivePlayerContext操作对应的 <live-player/> 组件。 创建并返回 live-player 上下文 LivePlayerContext 对象。
swan.createCameraContext创建并返回 camera 上下文 cameraContext对象,cameraContext 与页面的 camera 组件绑定,一个页面只能有一个 camera,通过它可以操作对应的组件。
swan.createARCameraContext创建并返回 ar-camera 上下文 ARCameraContext对象,ARCameraContext 与页面的 ar-camera 组件绑定,一个页面只能有一个 ar-camera,通过它可以操作对应的组件。

文件

API 名称解释
swan.saveFile保存文件到本地
swan.getFileInfo获取文件信息
swan.getSavedFileList获取本地已保存的文件列表
swan.getSavedFileInfo获取本地文件的文件信息。此接口只能用于获取已保存到本地的文件,若需要获取临时文件信息,请使用 getFileInfo 接口。
swan.removeSavedFile删除本地存储的文件
swan.openDocument新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx。
swan.getFileSystemManager获取全局唯一的文件管理器对象。

数据存储

API 名称解释
swan.setStorage将数据存储在本地缓存指定的 key 中。如果之前存在同名 key ,会覆盖掉原来该 key 对应的内容。这是一个异步接口。
swan.setStorageSync将数据存储在本地缓存中指定的 key 中。如果之前存在同名 key ,会覆盖掉原来该 key 对应的内容。这是一个同步接口。
swan.getStorage从本地缓存中异步获取指定 key 对应的内容。
swan.getStorageSync从本地缓存中同步获取指定 key 对应的内容。
swan.getStorageInfo异步获取当前 storage 的相关信息。
swan.getStorageInfoSync同步获取当前 storage 的相关信息。
swan.removeStorage从本地缓存中异步移除指定 key。
swan.removeStorageSync从本地缓存中同步移除指定 key。
swan.clearStorage清理本地数据缓存。
swan.clearStorageSync同步清理本地数据缓存。

位置

API 名称解释
swan.getLocation获取当前的地理位置、速度。当用户离开智能小程序后,此接口无法调用。
swan.chooseLocation打开地图选择位置。需要用户授权 scope.userLocation。
swan.openLocation使用宿主 App 内置地图查看位置。
swan.createMapContext创建并返回 map 上下文 mapContext 对象。在自定义组件下,第二个参数传入组件实例 this,以操作组件内 组件。mapContext 通过 mapId 跟一个 组件绑定,通过它可以操作对应的 组件。

界面

API 名称解释
swan.createCanvasContext在 Page 中,推荐使用this.createCanvasContext(canvasId),进行绘图上下文的创建。也可使用swan.createCanvasContext(canvasId),但使用swan.createCanvasContext(canvasId)进行创建时,并非在执行所在的 Page 对象中使用 canvasId 进行查找,而是在用户当前可视的 Page 中使用 canvasId 进行查找。
swan.canvasGetImageData返回一个数组,用来描述 canvas 区域隐含的像素数据。在自定义组件下,第二个参数传入自定义组件实例 this,以操作组件内 <canvas> 组件。
swan.canvasPutImageData将像素数据绘制到画布的方法。在自定义组件下,第二个参数传入自定义组件实例 this,以操作组件内 <canvas> 组件。
swan.canvasToTempFilePath把当前画布指定区域的内容导出生成指定大小的图片,并返回文件路径。在自定义组件下,第二个参数传入组件实例this,以操作组件内<canvas/>组件。
canvasContext绘图上下文
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.lineTolineTo 方法增加一个新点,然后创建一条从上次指定点到目标点的线。
canvasContext.arc画一条弧线。
canvasContext.scale在调用scale方法后,之后创建的路径其横纵坐标会被缩放。多次调用scale,倍数会相乘。
canvasContext.rotate以原点为中心,原点可以用 translate 方法修改。顺时针旋转当前坐标轴。多次调用 rotate,旋转的角度会叠加。
canvasContext.translate对当前坐标系的原点 (0, 0) 进行变换,默认的坐标系原点为页面左上角。
canvasContext.clipclip() 方法从原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内(不能访问画布上的其他区域)。可以在使用 clip() 方法前通过使用 save() 方法对当前画布区域进行保存,并在以后的任意时间对其进行恢复(通过 “restore()” 方法)。
canvasContext.setFontSize设置字体的字号。
canvasContext.fillText在画布上绘制被填充的文本。
canvasContext.setTextAlign用于设置文字的对齐。
canvasContext.setTextBaseline用于设置文字的水平对齐。
canvasContext.drawImage绘制图像到画布。
canvasContext.setGlobalAlpha设置全局画笔透明度。
canvasContext.measureText测量文本尺寸信息,目前仅返回文本宽度,同步接口。
canvasContext.strokeText给定的 (x, y) 位置绘制文本描边的方法。
canvasContext.setLineDashOffset设置虚线偏移量的属性。
canvasContext.bezierCurveTo创建三次方贝塞尔曲线路径。
canvasContext.quadraticCurveTo创建二次贝塞尔曲线路径。
canvasContext.save保存当前的绘图上下文。
canvasContext.restore恢复之前保存的绘图上下文。
canvasContext.draw将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中。
canvasContext.font设置当前字体样式的属性。
canvasContext.setTransform使用矩阵重新设置(覆盖)当前变换的方法。
swan.showToast显示消息提示框
swan.showLoading显示 loading 提示框, 需主动调用 hideLoading 才能关闭提示框。
swan.hideToast隐藏消息提示框
swan.hideLoading隐藏 loading 提示框
swan.showModal显示模态弹窗
swan.showActionSheet显示操作菜单
swan.setNavigationBarTitle动态设置当前页面的标题。
swan.showNavigationBarLoading该方法在当前页面显示导航条加载动画。
swan.hideNavigationBarLoading隐藏导航条加载动画。
swan.setNavigationBarColor动态设置当前页面导航条的颜色。
swan.setTabBarBadge为 tabBar 某一项的右上角添加文本
swan.removeTabBarBadge移除tabBar某一项右上角的文本
swan.showTabBarRedDot显示 tabBar 某一项的右上角的红点
swan.hideTabBarRedDot隐藏 tabBar 某一项的右上角的红点
swan.setTabBarStyle动态设置 tabBar 的整体样式
swan.setTabBarItem动态设置 tabBar 某一项的内容
swan.showTabBar显示 tabBar
swan.hideTabBar隐藏 tabBar
swan.navigateTo保留当前页面,跳转到应用内的某个页面,但是不能跳转到 tabbar 页面,使用 swan.navigateBack 可以返回到原页面。
swan.redirectTo关闭当前页面,跳转到应用内的某个页面。
swan.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
swan.navigateBack关闭当前页面,返回上一页面或多级页面。
swan.reLaunch关闭所有页面,打开到应用内的某个页面。
swan.createAnimation创建一个动画实例 animation
animation动画实例可以调用以下方法来描述动画,调用结束后会返回自身,支持链式调用的写法。
swan.pageScrollTo将页面滚动到目标位置(可以设置滚动动画时长)。
swan.setBackgroundColor设置窗口的背景颜色。
swan.setBackgroundTextStyle设置窗口下拉背景loading样式
onPullDownRefresh详情参见页面相关事件处理函数
swan.startPullDownRefresh开始下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。
swan.stopPullDownRefresh停止当前页面下拉刷新。
swan.nextTick延迟一部分操作到下一个时间片再执行。(类似于 setTimeout)
swan.getMenuButtonBoundingClientRect获取菜单按钮(右上角胶囊按钮)的布局位置信息。坐标信息以屏幕左上角为原点。
swan.createIntersectionObserver创建并返回一个 IntersectionObserver 对象实例。在自定义组件中,可以使用 this.createIntersectionObserver([options]) 来代替。
IntersectionObserverIntersectionObserver 对象,用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见。
IntersectionObserver.relativeTo使用选择器指定一个节点,作为参照区域之一。
IntersectionObserver.relativeToViewport指定页面显示区域作为参照区域之一
IntersectionObserver.observe指定目标节点并开始监听相交状态变化情况
IntersectionObserver.disconnect停止监听。回调函数将不再触发
swan.createSelectorQuery返回一个 SelectorQuery 对象实例。可以在这个实例上使用 select 等方法选择节点,并使用 boundingClientRect 等方法选择需要查询的信息。
selectorQuery选择器
selectorQuery.in将选择器的选取范围更改为自定义组件 component 内(初始时,选择器仅选取页面范围的节点,不会选取任何自定义组件中的节点)。
selectorQuery.select在当前页面下选择第一个匹配选择器 selector 的节点,返回一个 NodesRef 对象实例,可以用于获取节点信息。
selectorQuery.selectAll在当前页面下选择匹配选择器 selector 的节点,返回一个 NodesRef 对象实例。 与 selectorQuery.select(selector) 不同的是,它选择所有匹配选择器的节点。
selectorQuery.selectViewport选择显示区域,可用于获取显示区域的尺寸、滚动位置等信息,返回一个NodesRef对象实例。
selectorQuery.exec执行所有的请求,请求结果按请求次序构成数组,在 callback 的第一个参数中返回。
nodesRef节点信息
nodesRef.boundingClientRect添加节点的布局位置的查询请求,相对于显示区域,以像素为单位。其功能类似于 DOM 的 getBoundingClientRect。返回值是 nodesRef 对应的 selectorQuery。
nodesRef.scrollOffset添加节点的滚动位置查询请求,以像素为单位。节点必须是 scroll-view 或者 viewport 。返回值是 nodesRef 对应的 selectorQuery 。
nodesRef.fields获取节点的相关信息,需要获取的字段在 fields 中指定。返回值是 nodesRef 对应的 selectorQuery 。
swan.showFavoriteGuide支持在小程序内调起关注小程序引导组件,引导用户关注小程序。引导组件设计文档详见:关注小程序引导。

设备

API 名称解释
swan.getSystemInfo获取系统信息
swan.getSystemInfoSync获取系统信息同步接口
swan.getEnvInfoSync获取运行环境信息同步接口
swan.canIUse判断智能小程序的API,回调,参数,组件等是否在当前版本可用。
swan.onMemoryWarning监听内存不足的告警事件,Android 下有告警等级划分,只有 LOW 和 CRITICAL 会回调开发者;iOS 无等级划分。
swan.getNetworkType获取网络类型
swan.onNetworkStatusChange监听网络状态变化
swan.onAccelerometerChange监听加速度数据,频率:5次/秒,接口调用后会自动开始监听,可使用 swan.stopAccelerometer 停止监听。
swan.startAccelerometer开始监听加速度数据
swan.stopAccelerometer停止监听加速度数据
swan.onCompassChange监听罗盘数据,频率:5次/秒,接口调用后会自动开始监听,可使用swan.stopCompass停止监听。
swan.startCompass开始监听罗盘数据。
swan.stopCompass停止监听罗盘数据。
swan.onDeviceMotionChange监听设备方向变化事件。频率根据 swan.startDeviceMotionListening() 的 interval 参数。可以使用 swan.stopDeviceMotionListening() 停止监听。
swan.startDeviceMotionListening开始监听设备方向的变化
swan.stopDeviceMotionListening停止监听设备方向的变化。
swan.getBatteryInfo支持在小程序内获取当前设备电量
swan.getBatteryInfoSync获取当前设备电量同步接口,ios系统不可用。
swan.scanCode调起客户端扫码界面,扫码成功后返回对应的结果。
swan.setScreenBrightness设置屏幕亮度
swan.getScreenBrightness获取屏幕亮度
swan.setKeepScreenOn设置是否保持常亮状态。仅在当前智能小程序生效,离开智能小程序后设置失效。
swan.onUserCaptureScreen监听用户主动截屏事件,用户使用系统截屏按键截屏时触发此事件。
swan.vibrateLong使手机发生较长时间的振动(400ms)
swan.vibrateShort使手机发生较短时间的振动(15ms),仅在 iPhone 7/7 Plus 以上及 Android 机型生效。
swan.addPhoneContact调用后,用户可以选择将联系人数据以“新增联系人”或“添加到已有联系人”的方式,写入手机系统通讯录,完成手机通讯录联系人和联系方式的增加。
swan.makePhoneCall拨打电话
swan.setClipboardData设置系统剪贴板的内容
swan.getClipboardData获取系统剪贴板内容
swan.addEventOnCalendar向系统日历写入一个活动,之后在设定的时间提醒
swan.deleteEventOnCalendar删除日历上的某个活动

第三方平台

API 名称解释
swan.getExtConfig获取第三方平台自定义的数据字段。
swan.getExtConfigSyncswan.getExtConfig的同步版本。

开放接口

API 名称解释
swan.login调用接口 swan.login 获取 Authorization Code,智能小程序可以使用swan.login()接口获取Authorization Code。
swan.checkSession通过上述接口获得的用户登录态拥有一定的时效性,用户越久未使用智能小程序,用户登录态越有可能失效;反之如果用户一直在使用智能小程序,则用户登录态一直保持有效。具体时效逻辑由宿主维护,对开发者透明。开发者可以调用 swan.checkSession 接口 检测当前用户登录态是否有效,登录态过期后开发者可以再调用 swan.login 获取新的用户登录态。
swan.isLoginSync宿主 App登录状态
swan.authorize提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权智能小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。
swan.getSwanId获取 swanid
swan.getUserInfo获取用户信息,首次使用的用户会弹出授权提示窗,若用户同意,则会返回用户的真实数据;若用户未登录或者拒绝授权,会返回默认用户“百度网友”及默认的头像地址。
swan.openSetting调起客户端智能小程序设置界面,返回用户设置的操作结果。
swan.getSetting获取用户的当前设置
onShareAppMessage详情参见页面相关事件处理函数
swan.openShare调起分享面板
swan.shareFile支持调起系统分享面板将文件分享到其他App。
swan.chooseAddress调起用户编辑收货地址原生界面,并在编辑完成后返回用户选择的地址,需要用户授权 scope.address。
swan.requestPolymerPayment百度收银台,聚合了主流的百度钱包、微信、支付宝、网银等多种支付方式,方便开发者一站式快速接入多种支付渠道,让百度用户能在智能小程序场景下,直接完成支付、交易闭环,提升用户支付体验的同时,提高智能小程序的订单转化率。
swan.openCommunityEditor调起原生全屏内容发布器,并支持开发者配置发布器展示模块。
swan.closeCommunityEditor关闭原生全屏内容发布器。
swan.openReplyEditor调起原生半屏内容发布器,并支持开发者配置发布器展示模块。
swan.closeReplyEditor关闭原生半屏内容发布器。
swan.chooseInvoiceTitle选择用户的发票抬头,需要用户授权 scope.invoiceTitle。
swan.navigateToSmartProgram打开另一个小程序
swan.navigateBackSmartProgram返回到上一个小程序
swan.setPageInfo智能小程序可接入百度搜索和宿主 App 信息流,swan.setPageInfo 负责为小程序设置各类页面基础信息,包括标题、关键字、页面描述以及图片信息、视频信息等。开发者为智能小程序设置完备的页面基础信息,有助于智能小程序在搜索引擎和信息流中得到更加有效的展示和分发。
swan.setMetaDescription不推荐使用
swan.setMetaKeywords不推荐使用
swan.setDocumentTitle不推荐使用
swan.loadSubPackage提前下载好子包的资源,目录结构配置参考分包加载API列表 - 图1
swan.getUpdateManager获取全局唯一的版本更新管理器,用于管理小程序更新。
swan.setEnableDebug设置是否打开调试开关,此开关对正式版也能生效。
swan.reportAnalytics自定义分析数据上报接口。使用前,需要在小程序管理后台自定义分析中新建事件,配置好事件名与字段。
clearInterval取消由 setInterval 设置的定时器。
clearTimeout取消由 setTimeout 设置的定时器。
setInterval设定一个定时器。按照指定的周期(以毫秒计)来执行注册的回调函数。
setTimeout设定一个定时器,在定时到期以后执行注册的回调函数。
swan.getSystemRiskInfo获取用于得到风控信息的加密信息对象。
swan.subscribeService小程序消息订阅服务:取消订阅和查询订阅。