💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 百度小程序--API * 小程序开发框架提供丰富的原生 API * 多数 API 的回调都是异步,你需要处理好代码逻辑的异步问题 ## 目录结构 [toc] --- ## `API` 导读 <table> <tr> <td>一级分类</td> <td>二级分类</td> <td>API</td> <td>描述</td> </tr> <tr> <td rowspan="8">基础</td> <td rowspan="8">应用级事件</td> <td>swan.onPageNotFound</td> <td>监听小程序要打开的页面不存在事件。该事件与 App.onPageNotFound 的回调时机一致</td> </tr> <tr> <td>swan.onError</td> <td>监听小程序错误事件。如脚本错误或API调用报错等</td> </tr> <tr> <td>swan.onAppShow</td> <td>监听小程序错误事件。如脚本错误或API调用报错等。该事件与 App.onError 的回调时机与参数一致</td> </tr> <tr> <td>swan.onAppHide</td> <td>监听小程序切后台事件。该事件与 App.onHide 的回调时机一致</td> </tr> <tr> <td>swan.offPageNotFound</td> <td>取消监听小程序要打开的页面不存在事件</td> </tr> <tr> <td>swan.offError</td> <td>取消监听小程序错误事件</td> </tr> <tr> <td>swan.offAppShow</td> <td>取消监听小程序切前台事件</td> </tr> <tr> <td>swan.offAppHide</td> <td>取消监听小程序切后台事件</td> </tr> <tr> <td rowspan="10">网络</td> <td>请求</td> <td>swan.request</td> <td>发起网络请求</td> </tr> <tr> <td rowspan="2">上传、下载</td> <td>swan.uploadFile</td> <td>将本地资源上传到开发者服务器</td> </tr> <tr> <td>swan.downloadFile</td> <td>下载文件资源到本地</td> </tr> <tr> <td rowspan="7">WebSocket</td> <td>swan.connectSocket</td> <td>创建一个 WebSocket 连接</td> </tr> <tr> <td>swan.onSocketOpen</td> <td>监听 WebSocket 连接打开事件</td> </tr> <tr> <td>swan.onSocketError</td> <td>监听 WebSocket 错误</td> </tr> <tr> <td>swan.sendSocketMessage</td> <td>通过 WebSocket 连接发送数据</td> </tr> <tr> <td>swan.onSocketMessage</td> <td>监听 WebSocket 接受到服务器的消息事件</td> </tr> <tr> <td>swan.closeSocket</td> <td>关闭 WebSocket 连接</td> </tr> <tr> <td>swan.onSocketClose</td> <td>监听 WebSocket 关闭</td> </tr> <tr> <td rowspan="24">AI</td> <td rowspan="4">文字识别</td> <td>swan.ai.ocrIdCard</td> <td>用户向服务请求识别身份证,身份证识别包括正面和背面</td> </tr> <tr> <td>swan.ai.ocrBankCard</td> <td>识别银行卡并返回卡号、发卡行和卡片类型</td> </tr> <tr> <td>swan.ai.ocrDrivingLicense</td> <td>对机动车驾驶证所有关键字段进行识别</td> </tr> <tr> <td>swan.ai.ocrVehicleLicense</td> <td>对机动车行驶证正本所有关键字段进行识别</td> </tr> <tr> <td>文本审核</td> <td>swan.ai.textReview</td> <td>运用业界领先的深度学习技术,判断一段文本内容是否符合网络发文规范,实现自动化、智能化的文本审核</td> </tr> <tr> <td>语音合成</td> <td>swan.ai.textToAudio</td> <td>将文本转换为可以播放的 mp3 文件</td> </tr> <tr> <td>图像审核</td> <td>swan.ai.imageAudit</td> <td>自定义图像审核</td> </tr> <tr> <td rowspan="7">图像识别</td> <td>swan.ai.advancedGeneralIdentify</td> <td>通用物体及场景识别,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中的多个物体及场景标签</td> </tr> <tr> <td>swan.ai.objectDetectIdentify</td> <td>用户向服务请求检测图像中的主体位置</td> </tr> <tr> <td>swan.ai.carClassify</td> <td>用于检测一张车辆图片的具体车型,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片的车辆品牌及型号、颜色及年份、位置信息</td> </tr> <tr> <td>swan.ai.dishClassify</td> <td>用于菜品识别,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片的菜品名称、卡路里信息、置信度</td> </tr> <tr> <td>swan.ai.logoClassify</td> <td>用于检测和识别图片中的品牌 LOGO 信息</td> </tr> <tr> <td>swan.ai.animalClassify</td> <td>该请求用于识别一张图片,即对于输入的一张图片(可正常解码,且长宽比较合适),输出动物识别结果</td> </tr> <tr> <td>swan.ai.plantClassify</td> <td>该请求用于识别一张图片,即对于输入的一张图片(可正常解码,且长宽比较合适),输出植物识别结果</td> </tr> <tr> <td>语音识别</td> <td>swan.ai.getVoiceRecognizer</td> <td>获取全局唯一的语音识别器 voiceRecognizer</td> </tr> <tr> <td rowspan="8">人脸识别</td> <td>swan.ai.faceDetect</td> <td>人脸检测,检测图片中的人脸并标记出相应的信息位置,同时可以展示出人脸的关键信息和属性信息,比如年龄,性别等</td> </tr> <tr> <td>swan.ai.faceMatch</td> <td>人脸对比,支持两张人脸图片的相似度对比,图片类型可以为:生活照,证件照,身份证芯片照或者带网纹照</td> </tr> <tr> <td>swan.ai.faceSearch</td> <td>人脸搜索,传入人脸图片,支持在指定人脸图片集合中,找到与传入图片中人脸最为相似的图片</td> </tr> <tr> <td>swan.ai.facePersonVerify</td> <td>公安验证,基于姓名和身份证号,调取公民身份证小图(源自公安系统),将当前获取的人脸图片,与此证件小图进行对比,得出比对分数</td> </tr> <tr> <td>swan.ai.facePersonIdmatch</td> <td>身份证和名字对比,验证用户输入的身份证号码和姓名是否匹配,用于判断用户信息是否真实</td> </tr> <tr> <td>swan.ai.faceVerify</td> <td>在线活体检测,基于单张图片,判断图片中的人脸是否为二次翻拍</td> </tr> <tr> <td>swan.ai.faceLivenessSessioncode</td> <td>H5活体检测-语音校验码,为防止用户提交非当前操作的视频,在录制视频时,随机分配一个数字,用户需要读出这个数字,在后续识别时校验,以判断视频是否为现场录制</td> </tr> <tr> <td>swan.ai.faceLivenessVerify</td> <td>H5活体检测-视频活体检测,录制并上传的视频,会在云端进行随机抽帧分析,并得出最终的活体检测分数</td> </tr> <tr> <td>词法分析</td> <td>swan.ai.nlpLexerCustom</td> <td>词法分析,提供分词、词性标注、专名识别三大功能</td> </tr> <tr> <td rowspan="15">媒体</td> <td rowspan="5">图片</td> <td>swan.chooseImage</td> <td>从本地相册选择图片或使用相机拍照</td> </tr> <tr> <td>swan.previewImage</td> <td>预览图片</td> </tr> <tr> <td>swan.getImageInfo</td> <td>获取图片信息</td> </tr> <tr> <td>swan.saveImageToPhotosAlbum</td> <td>保存图片到系统相册,需要用户授权</td> </tr> <tr> <td>swan.chooseAlbum</td> <td>打开本地相册,相册内可以同时包含图片和视频</td> </tr> <tr> <td>录音管理</td> <td>swan.getRecorderManager</td> <td>获取全局唯一的录音管理器 recorderManager</td> </tr> <tr> <td>背景音频</td> <td>swan.getBackgroundAudioManager</td> <td>获取全局唯一的背景音频管理器 backgroundAudioManager</td> </tr> <tr> <td rowspan="2">音频组件</td> <td>swan.createInnerAudioContext</td> <td>创建并返回内部 audio 上下文 innerAudioContext 对象</td> </tr> <tr> <td>swan.setInnerAudioOption</td> <td>对innerAudioContext进行小程序内部的全局设置</td> </tr> <tr> <td rowspan="2">视频</td> <td>swan.chooseVideo</td> <td>拍摄视频或从手机相册中选视频,返回视频的临时文件路径</td> </tr> <tr> <td>swan.saveVideoToPhotosAlbum</td> <td>保存视频到系统相册。需要用户授权</td> </tr> <tr> <td rowspan="1">视频组件</td> <td>swan.createVideoContext</td> <td>创建并返回 video 上下文 videoContext 对象</td> </tr> <tr> <td rowspan="1">直播组件</td> <td>swan.createLivePlayerContext</td> <td>操作对应的 < live-player/> 组件</td> </tr> <tr> <td rowspan="1">相机组件</td> <td>swan.createCameraContext</td> <td>创建并返回 camera 上下文 cameraContext对象</td> </tr> <tr> <td rowspan="1">AR相机</td> <td>swan.createARCameraContext</td> <td>创建并返回 ar-camera 上下文 ARCameraContext对象</td> </tr> <tr> <td rowspan="6">文件</td> <td rowspan="4">保存、获取文件</td> <td>swan.saveFile</td> <td>保存文件到本地</td> </tr> <tr> <td>swan.getFileInfo</td> <td>获取文件信息</td> </tr> <tr> <td>swan.getSavedFileList</td> <td>获取本地已保存的文件列表</td> </tr> <tr> <td>swan.getSavedFileInfo</td> <td>获取本地文件的文件信息</td> </tr> <tr> <td rowspan="1">删除文件</td> <td>swan.removeSavedFile</td> <td>删除本地存储的文件</td> </tr> <tr> <td rowspan="1">新文件</td> <td>swan.openDocument</td> <td>新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx</td> </tr> <tr> <td rowspan="10">数据存储</td> <td rowspan="6">存储数据</td> <td>swan.setStorage</td> <td>将数据存储在本地缓存中指定的 key 中</td> </tr> <tr> <td>swan.setStorageSync</td> <td>将数据存储在本地缓存中指定的 key 中</td> </tr> <tr> <td>swan.getStorage</td> <td>从本地缓存中异步获取指定 key 对应的内容</td> </tr> <tr> <td>swan.getStorageSync</td> <td>从本地缓存中同步获取指定 key 对应的内容</td> </tr> <tr> <td>swan.getStorageInfo</td> <td>异步获取当前 storage 的相关信息</td> </tr> <tr> <td>swan.getStorageInfoSync</td> <td>同步获取当前 storage 的相关信息</td> </tr> <tr> <td rowspan="4">存储清理</td> <td>swan.removeStorage</td> <td>从本地缓存中异步移除指定 key</td> </tr> <tr> <td>swan.removeStorageSync</td> <td>从本地缓存中同步移除指定 key</td> </tr> <tr> <td>swan.clearStorage</td> <td>清理本地数据缓存</td> </tr> <tr> <td>swan.clearStorageSync</td> <td>同步清理本地数据缓存</td> </tr> <tr> <td rowspan="4">位置</td> <td rowspan="2">获取位置</td> <td>swan.getLocation</td> <td>获取当前的地理位置、速度</td> </tr> <tr> <td>swan.chooseLocation</td> <td>打开地图选择位置</td> </tr> <tr> <td rowspan="1">查看位置</td> <td>swan.openLocation</td> <td>使用宿主 App 内置地图查看位置</td> </tr> <tr> <td rowspan="1">地图组件</td> <td>swan.createMapContext</td> <td>创建并返回 map 上下文 mapContext 对象</td> </tr> <tr> <td rowspan="38">界面</td> <td rowspan="4">绘图</td> <td>swan.createCanvasContext</td> <td>绘图上下文的创建</td> </tr> <tr> <td>swan.canvasGetImageData</td> <td>用来描述 canvas 区域隐含的像素数据</td> </tr> <tr> <td>swan.canvasPutImageData</td> <td>将像素数据绘制到画布的方法</td> </tr> <tr> <td>swan.canvasToTempFilePath</td> <td>把当前画布指定区域的内容导出生成指定大小的图片,并返回文件路径</td> </tr> <tr> <td rowspan="6">交互反馈</td> <td>swan.showToast</td> <td>显示消息提示框</td> </tr> <tr> <td>swan.showLoading</td> <td>显示 loading 提示框, 需主动调用 hideLoading 才能关闭提示框</td> </tr> <tr> <td>swan.hideToast</td> <td>隐藏消息提示框</td> </tr> <tr> <td>swan.hideLoading</td> <td>隐藏 loading 提示框</td> </tr> <tr> <td>swan.showModal</td> <td>显示模态弹窗</td> </tr> <tr> <td>swan.showActionSheet</td> <td>显示操作菜单</td> </tr> <tr> <td rowspan="4">导航栏</td> <td>swan.setNavigationBarTitle</td> <td>动态设置当前页面的标题</td> </tr> <tr> <td>swan.showNavigationBarLoading</td> <td>该方法在当前页面显示导航条加载动画</td> </tr> <tr> <td>swan.hideNavigationBarLoading</td> <td>隐藏导航条加载动画</td> </tr> <tr> <td>swan.setNavigationBarColor</td> <td>动态设置当前页面导航条的颜色</td> </tr> <tr> <td rowspan="8">设置tabBar</td> <td>swan.setTabBarBadge</td> <td>为 tabBar 某一项的右上角添加文本</td> </tr> <tr> <td>swan.removeTabBarBadge</td> <td>移除tabBar某一项右上角的文本</td> </tr> <tr> <td>swan.showTabBarRedDot</td> <td>显示 tabBar 某一项的右上角的红点</td> </tr> <tr> <td>swan.hideTabBarRedDot</td> <td>隐藏 tabBar 某一项的右上角的红点</td> </tr> <tr> <td>swan.setTabBarStyle</td> <td>动态设置 tabBar 的整体样式</td> </tr> <tr> <td>swan.setTabBarItem</td> <td>动态设置 tabBar 某一项的内容</td> </tr> <tr> <td>swan.showTabBar</td> <td>显示 tabBar</td> </tr> <tr> <td>swan.hideTabBar</td> <td>隐藏 tabBar</td> </tr> <tr> <td rowspan="5">导航</td> <td>swan.navigateTo</td> <td>保留当前页面,跳转到应用内的某个页面</td> </tr> <tr> <td>swan.redirectTo</td> <td>关闭当前页面,跳转到应用内的某个页面</td> </tr> <tr> <td>swan.switchTab</td> <td>跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面</td> </tr> <tr> <td>swan.navigateBack</td> <td>关闭当前页面,跳转到应用内的某个页面</td> </tr> <tr> <td>swan.reLaunch</td> <td>关闭所有页面,打开到应用内的某个页面</td> </tr> <tr> <td rowspan="1">动画</td> <td>swan.createAnimation</td> <td>创建一个动画实例 animation</td> </tr> <tr> <td rowspan="1">位置</td> <td>swan.pageScrollTo</td> <td>将页面滚动到目标位置</td> </tr> <tr> <td rowspan="2">背景</td> <td>swan.setBackgroundColor</td> <td>设置窗口的背景颜色</td> </tr> <tr> <td>swan.setBackgroundTextStyle</td> <td>设置窗口下拉背景loading样式</td> </tr> <tr> <td rowspan="2">下拉刷新</td> <td>swan.startPullDownRefresh</td> <td>开始下拉刷新,调用后触发下拉刷新动画</td> </tr> <tr> <td>swan.stopPullDownRefresh</td> <td>停止当前页面下拉刷新</td> </tr> <tr> <td rowspan="1">自定义组件</td> <td>swan.nextTick</td> <td>延迟一部分操作到下一个时间片再执行</td> </tr> <tr> <td rowspan="1">菜单</td> <td>swan.getMenuButtonBoundingClientRect</td> <td>获取菜单按钮(右上角胶囊按钮)的布局位置信息</td> </tr> <tr> <td rowspan="2">节点信息</td> <td>swan.createIntersectionObserver</td> <td>创建并返回一个 IntersectionObserver 对象实例</td> </tr> <tr> <td>swan.createSelectorQuery</td> <td>返回一个 SelectorQuery 对象实例</td> </tr> <tr> <td rowspan="1">小程序引导</td> <td>swan.showFavoriteGuide</td> <td>支持在小程序内调起添加到我的小程序引导组件,引导用户添加到我的小程序</td> </tr> <tr> <td rowspan="29">设备</td> <td rowspan="4">系统信息</td> <td>swan.getSystemInfo</td> <td>获取系统信息</td> </tr> <tr> <td>swan.getSystemInfoSync</td> <td>获取系统信息同步接口</td> </tr> <tr> <td>swan.getEnvInfoSync</td> <td>获取运行环境信息同步接口</td> </tr> <tr> <td>swan.canIUse</td> <td>判断智能小程序的API,回调,参数,组件等是否在当前版本可用</td> </tr> <tr> <td rowspan="1">内存</td> <td>swan.onMemoryWarning</td> <td>监听内存不足的告警事件</td> </tr> <tr> <td rowspan="2">内存</td> <td>swan.getNetworkType</td> <td>获取网络类型</td> </tr> <tr> <td>swan.onNetworkStatusChange</td> <td>监听网络状态变化</td> </tr> <tr> <td rowspan="3">加速度计</td> <td>swan.onAccelerometerChange</td> <td>监听加速度数据</td> </tr> <tr> <td>swan.startAccelerometer</td> <td>开始监听加速度数据</td> </tr> <tr> <td>swan.stopAccelerometer</td> <td>停止监听加速度数据</td> </tr> <tr> <td rowspan="3">罗盘</td> <td>swan.onCompassChange</td> <td>监听罗盘数据</td> </tr> <tr> <td>swan.startCompass</td> <td>开始监听罗盘数据</td> </tr> <tr> <td>swan.stopCompass</td> <td>停止监听罗盘数据</td> </tr> <tr> <td rowspan="3">设备方向</td> <td>swan.onDeviceMotionChange</td> <td>监听设备方向变化事件</td> </tr> <tr> <td>swan.startDeviceMotionListening</td> <td>开始监听设备方向的变化</td> </tr> <tr> <td>swan.stopDeviceMotionListening</td> <td>停止监听设备方向的变化</td> </tr> <tr> <td rowspan="2">获取电量</td> <td>swan.getBatteryInfo</td> <td>支持在小程序内获取当前设备电量</td> </tr> <tr> <td>swan.getBatteryInfoSync</td> <td>获取当前设备电量同步接口,ios系统不可用</td> </tr> <tr> <td rowspan="1">扫码</td> <td>swan.scanCode</td> <td>调起客户端扫码界面,扫码成功后返回对应的结果</td> </tr> <tr> <td rowspan="3">屏幕亮度</td> <td>swan.setScreenBrightness</td> <td>设置屏幕亮度</td> </tr> <tr> <td>swan.getScreenBrightness</td> <td>获取屏幕亮度</td> </tr> <tr> <td>swan.setKeepScreenOn</td> <td>设置是否保持常亮状态</td> </tr> <tr> <td rowspan="1">用户截屏</td> <td>swan.onUserCaptureScreen</td> <td>监听用户主动截屏事件,用户使用系统截屏按键截屏时触发此事件</td> </tr> <tr> <td rowspan="2">振动</td> <td>swan.vibrateLong</td> <td>使手机发生较长时间的振动</td> </tr> <tr> <td>swan.vibrateShort</td> <td>使手机发生较短时间的振动</td> </tr> <tr> <td rowspan="1">手机联系人</td> <td>swan.addPhoneContact</td> <td>写入手机系统通讯录</td> </tr> <tr> <td rowspan="1">拨打电话</td> <td>swan.makePhoneCall</td> <td>拨打电话</td> </tr> <tr> <td rowspan="2">剪贴板</td> <td>swan.setClipboardData</td> <td>设置系统剪贴板的内容</td> </tr> <tr> <td>swan.getClipboardData</td> <td>获取系统剪贴板内容</td> </tr> <tr> <td rowspan="2">第三方平台</td> <td rowspan="2">第三方数据</td> <td>swan.getExtConfig</td> <td>获取第三方平台自定义的数据字段</td> </tr> <tr> <td>swan.getExtConfigSync</td> <td>swan.getExtConfig的同步版本</td> </tr> <tr> <td rowspan="28">开放接口</td> <td rowspan="3">登陆</td> <td>swan.login</td> <td>获取用户登录凭证</td> </tr> <tr> <td>swan.checkSession</td> <td>检测当前用户登录态是否有效</td> </tr> <tr> <td>swan.isLoginSync</td> <td>获取宿主 App登录状态</td> </tr> <tr> <td rowspan="1">授权</td> <td>swan.authorize</td> <td>提前向用户发起授权请求</td> </tr> <tr> <td rowspan="2">授权</td> <td>swan.getSwanId</td> <td>获取 swanid</td> </tr> <tr> <td>swan.getUserInfo</td> <td>获取用户信息</td> </tr> <tr> <td rowspan="2">设置</td> <td>swan.openSetting</td> <td>调起客户端智能小程序设置界面,返回用户设置的操作结果</td> </tr> <tr> <td>swan.getSetting</td> <td>获取用户的当前设置</td> </tr> <tr> <td rowspan="2">分享</td> <td>swan.openShare</td> <td>调起分享面板</td> </tr> <tr> <td>swan.shareFile</td> <td>支持调起系统分享面板将文件分享到其他App</td> </tr> <tr> <td rowspan="1">收货地址</td> <td>swan.chooseAddress</td> <td>调起用户编辑收货地址原生界面</td> </tr> <tr> <td rowspan="1">百度支付</td> <td>swan.requestPolymerPayment</td> <td>百度收银台,聚合了主流的百度钱包、微信、支付宝、网银等多种支付方式</td> </tr> <tr> <td rowspan="1">获取发票</td> <td>swan.chooseInvoiceTitle</td> <td>选择用户的发票抬头</td> </tr> <tr> <td rowspan="2">打开小程序</td> <td>swan.navigateToSmartProgram</td> <td>打开另一个小程序</td> </tr> <tr> <td>swan.navigateBackSmartProgram</td> <td>返回到上一个小程序</td> </tr> <tr> <td rowspan="4">页面基础信息</td> <td>swan.setPageInfo</td> <td>设置各类页面基础信息</td> </tr> <tr> <td>swan.setMetaDescription</td> <td>设置 web 版小程序 description meta 信息</td> </tr> <tr> <td>swan.setMetaKeywords</td> <td>设置 web 版小程序 keywords meta 信息</td> </tr> <tr> <td>swan.setDocumentTitle</td> <td>动态设置当前页面的标题</td> </tr> <tr> <td rowspan="1">分包预下载</td> <td>swan.loadSubPackage</td> <td>提前下载好子包的资源</td> </tr> <tr> <td rowspan="1">更新</td> <td>swan.getUpdateManager</td> <td>获取全局唯一的版本更新管理器,用于管理小程序更新</td> </tr> <tr> <td rowspan="1">调试</td> <td>swan.setEnableDebug</td> <td>设置是否打开调试开关,此开关对正式版也能生效</td> </tr> <tr> <td rowspan="1">数据分析</td> <td>swan.reportAnalytics</td> <td>自定义分析数据上报接口</td> </tr> <tr> <td rowspan="4">定时器</td> <td>setInterval</td> <td>设定一个定时器</td> </tr> <tr> <td>clearInterval</td> <td>取消由 setInterval 设置的定时器</td> </tr> <tr> <td>setTimeout</td> <td>设定一个定时器</td> </tr> <tr> <td>clearTimeout</td> <td>取消由 setTimeout 设置的定时器</td> </tr> <tr> <td rowspan="1">风控</td> <td>swan.getSystemRiskInfo</td> <td>获取用于得到风控信息的加密信息对象</td> </tr> </table> --- ## 一、界面--交互反馈api ```php 1. swan.showToast 显示消息提示框 2. swan.hideToast 隐藏消息提示框 3. swan.showLoading 显示 loading 提示框。需主动调用 swan.hideLoading 才能关闭提示框 4. swan.hideLoading 隐藏 loading 提示框 5. swan.showModal 显示模态对话框 6. swan.showActionSheet 显示操作菜单 ``` --- ### 1. `swan.showToast` 显示消息提示框 **属性**|**类型**|**必填**|**描述** ---|---|---|--- title|string|是|提示的内容 icon|string|否|图标 image|string|否|自定义图标的本地路径,image 的优先级高于 icon duration|number|否|提示的延迟时间 mask|boolean|否|是否显示透明蒙层,防止触摸穿透 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > icon合法值: **属性**|**描述** ---|--- success|显示成功图标,此时 title 文本最多显示 7 个汉字长度 loading|显示加载图标,此时 title 文本最多显示 7 个汉字长度 none|不显示图标,此时 title 文本最多可显示两行 > js示例: ```js Page({ onLoad: function (options) { swan.showToast({ title: '成功', icon: 'success', image: 'img/1.png', // 放在小程序根目录,icon就不会显示了 duration : 1000, mask : true, success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 2. `swan.hideToast` 隐藏消息提示框 **属性**|**类型**|**必填**|**描述** ---|---|---|--- success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.hideToast({ success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 3. `swan.showLoading` 显示 loading 提示框。需主动调用 `swan.hideLoading` 才能关闭提示框 **属性**|**类型**|**必填**|**描述** ---|---|---|--- title|string|是|提示的内容 mask|boolean|否|是否显示透明蒙层,防止触摸穿透 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.showLoading({ title: '加载中', mask : true, success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 4. `swan.hideLoading` 隐藏 loading 提示框 **属性**|**类型**|**必填**|**描述** ---|---|---|--- success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.hideLoading({ success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 5. `swan.showModal` 显示模态对话框 **属性**|**类型**|**必填**|**描述** ---|---|---|--- title|string|是|提示的标题 content|string|是|提示的内容 showCancel|boolean|否|是否显示取消按钮 cancelText|string|否|取消按钮的文字,最多 4 个字符 cancelColor|string|否|取消按钮的文字颜色,必须是 16 进制格式的颜色字符串 confirmText|string|否|确认按钮的文字,最多 4 个字符 confirmColor|string|否|确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.showModal({ title: '提示', content: '这是一个模态弹窗', showCancel : true, cancelText : '取消按钮', cancelColor : '#333', confirmText : '确定按钮', confirmColor : 'red', success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 6. `swan.showActionSheet` 显示模态对话框 **属性**|**类型**|**必填**|**描述** ---|---|---|--- itemList|Array|是|按钮的文字数组,数组长度最大为 6 itemColor|string|否|按钮的文字颜色 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.showActionSheet({ itemList: [ '欧阳克', '黄蓉', '郭靖', '杨康', '穆念慈' ], itemColor: '#333', success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ## 二、界面--导航api ```php 1. swan.switchTab 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 2. swan.reLaunch 关闭所有页面,打开到应用内的某个页面 3. swan.redirectTo 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面 4. swan.navigateTo 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面 5. swan.navigateBack 关闭当前页面,返回上一页面或多级页面 ``` --- ### 1. `swan.switchTab` 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 **属性**|**类型**|**必填**|**描述** ---|---|---|--- url|string|是|需要跳转的 tabBar 页面的路径,路径后不能带参数。 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.switchTab({ url: 'a', success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` > app.json示例: ```json { "tabBar": { "list": [ { "pagePath": "index", "text": "首页" }, { "pagePath": "a", "text": "A页面" } ] } } ``` --- ### 2. `swan.reLaunch` 关闭所有页面,打开到应用内的某个页面 **属性**|**类型**|**必填**|**描述** ---|---|---|--- url|string|是|需要跳转的应用内页面路径,路径后可以带参数。 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.reLaunch({ url: 'a?id=1', success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 3. `swan.redirectTo` 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面 **属性**|**类型**|**必填**|**描述** ---|---|---|--- url|string|是|需要跳转的应用内非 tabBar 的页面的路径, 路径后可以带参数。 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.redirectTo({ url: 'a?id=1', success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 4. `swan.navigateTo` 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面 **属性**|**类型**|**必填**|**描述** ---|---|---|--- url|string|是|需要跳转的应用内非 tabBar 的页面的路径, 路径后可以带参数。 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.navigateTo({ url: 'a?id=1', success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 5. `swan.navigateBack` 关闭当前页面,返回上一页面或多级页面 **属性**|**类型**|**必填**|**描述** ---|---|---|--- delta|string|是|返回的页面数,如果 delta 大于现有页面数,则返回到首页,最多10层 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.navigateBack({ delta: 10, success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ## 三、网络--请求api ```php 1. swan.request 发起 HTTPS 网络请求 ``` --- ### 1. `swan.request` 发起 HTTPS 网络请求 **属性**|**类型**|**必填**|**描述** ---|---|---|--- url|number|是|开发者服务器接口地址 data|string/object/ArrayBuffer|否|请求的参数 header|Object|否|设置请求的 header,header 中不能设置 Referer method|string|否|HTTP 请求方法 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.request({ url: 'http://apis.juhe.cn/mobile/get', data : { key : '4d6cce531387deeedf359687fb04c163', phone : '13429667914' }, header: { 'content-type': 'application/json' }, method : 'POST', success(e){ console.log(e); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` > 接口返回的json数据不能使用,请看这里: >> 对于 POST 方法且 header['content-type'] 为 application/json 的数据,会对数据进行 JSON 序列化 >> 对于 POST 方法且 header['content-type'] 为 application/x-www-form-urlencoded 的数据,会将数据转换成 query string --- ## 四、媒体--图片api ```php 1. swan.previewImage 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。 ``` --- ### 1. `swan.previewImage` 在新页面中全屏预览图片 **属性**|**类型**|**必填**|**描述** ---|---|---|--- urls|Array|是|需要预览的图片链接列表 current|string|否|当前显示图片的链接 success|function|否|接口调用成功的回调函数 fail|function|否|接口调用失败的回调函数 complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { wx.previewImage({ current: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1558711326985&di=3386e412418b6826b3b1fcbf55f72165&imgtype=0&src=http%3A%2F%2Fk.zol-img.com.cn%2Fsjbbs%2F7692%2Fa7691515_s.jpg', urls: [ 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1558711326985&di=3386e412418b6826b3b1fcbf55f72165&imgtype=0&src=http%3A%2F%2Fk.zol-img.com.cn%2Fsjbbs%2F7692%2Fa7691515_s.jpg', 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1558711326983&di=37ac9ac0c2c7dccaa914d5ebae940325&imgtype=0&src=http%3A%2F%2Fpic37.nipic.com%2F20140110%2F17563091_221827492154_2.jpg', 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1558711326983&di=e32936aa5551a260c99cb4deaaf6c141&imgtype=0&src=http%3A%2F%2Fpic35.nipic.com%2F20131115%2F13972544_160943053001_2.jpg' ] success(){ console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ## 五、开放接口api ```php 1. swan.authorize 提前向用户发起授权请求 2. swan.chooseAddress 获取用户收货地址 3. swan.chooseInvoiceTitle 选择用户的发票抬头 4. swan.chooseInvoice 选择用户已有的发票 5. swan.getUserInfo 获取用户信息 ``` --- ### 1. `swan.authorize` 提前向用户发起授权请求 **属性**|**类型**|**描述** ---|---|--- scope|string|需要获取权限的 scope success|function|接口调用成功的回调函数 fail|function|接口调用失败的回调函数 complete|function|接口调用结束的回调函数(调用成功、失败都会执行) > scope合法值: **属性**|**对应接口**|**描述** ---|---|--- scope.address|swan.chooseAddress|通讯地址 scope.invoiceTitle|swan.chooseInvoiceTitle|发票抬头 scope.invoice|swan.chooseInvoice|获取发票 scope.userInfo|swan.getUserInfo|用户信息 > js示例: ```js Page({ onLoad: function (options) { swan.authorize({ scope: 'scope.address', success(e) { console.log(e); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 2. `swan.chooseAddress` 获取用户收货地址 **属性**|**类型**|**描述** ---|---|--- success|function|接口调用成功的回调函数 fail|function|接口调用失败的回调函数 complete|function|接口调用结束的回调函数(调用成功、失败都会执行) > js示例1: ```js Page({ onLoad: function (options) { swan.chooseAddress({ success(e) { console.log(e); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }); } }) ``` > js示例2: ```js Page({ onLoad: function (options) { swan.authorize({ scope: 'scope.address', success(e) { swan.chooseAddress({ success(e) { console.log(e); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 5. `swan.getUserInfo` 获取用户信息 **属性**|**类型**|**描述** ---|---|--- success|function|接口调用成功的回调函数 fail|function|接口调用失败的回调函数 complete|function|接口调用结束的回调函数(调用成功、失败都会执行) > js示例1: ```js Page({ onLoad: function (options) { // 这样调用,会失败 swan.getUserInfo({ success(e) { console.log(e); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }); } }) ``` > js示例2: ```js Page({ onLoad: function (options) { // 授权成功后,还是失败 // 因为微信已经禁止直接调用微信用户信息,需要用户主动请求 swan.authorize({ scope: 'scope.userInfo', success(e) { swan.getUserInfo({ success(e) { console.log(e); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` ### `button` 按钮 **属性**|**类型**|**描述** ---|---|---|--- open-type|string|开放能力 bindgetuserinfo|eventhandle|用户点击该按钮时,会返回获取到的用户信息,open-type="getUserInfo"时有效 bindcontact|eventhandle|客服消息回调,open-type="contact"时有效 bindgetphonenumber|eventhandle|获取用户手机号回调,open-type=getPhoneNumber时有效 > js示例3: ```js Page({ onLoad: function (options) { a(e){ console.log(e); } } }) ``` ```html <button open-type="getUserInfo" bindgetuserinfo='a'>登录</button> ``` --- ## 六、设备api ```php 1. swan.setClipboardData 设置系统剪贴板的内容 2. swan.getClipboardData 获取系统剪贴板的内容 3. swan.getNetworkType 获取网络类型 4. swan.makePhoneCall 拨打电话 5. swan.scanCode 调起客户端扫码界面进行扫码 6. swan.getSystemInfo 获取系统信息 ``` --- ### 1、`swan.setClipboardData` 设置系统剪贴板的内容 **属性**|**类型**|**描述** ---|---|--- data|string|剪贴板的内容 success|function|接口调用成功的回调函数 fail|function|接口调用失败的回调函数 complete|function|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.setClipboardData({ data: '我是欧阳克', success(e) { console.log(e); console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 2、`swan.getClipboardData` 获取系统剪贴板的内容 **属性**|**类型**|**描述** ---|---|--- success|function|接口调用成功的回调函数 fail|function|接口调用失败的回调函数 complete|function|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.getClipboardData({ success(e) { console.log(e); console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 3、`swan.getNetworkType` 获取网络类型 **属性**|**类型**|**描述** ---|---|--- success|function|接口调用成功的回调函数 fail|function|接口调用失败的回调函数 complete|function|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.getNetworkType({ success(e) { console.log(e); console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 4、`swan.makePhoneCall` 拨打电话 **属性**|**类型**|**描述** ---|---|--- phoneNumber|string|需要拨打的电话号码 success|function|接口调用成功的回调函数 fail|function|接口调用失败的回调函数 complete|function|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.makePhoneCall({ phoneNumber : '13843843843', success(e) { console.log(e); console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 5、`swan.scanCode` 调起客户端扫码界面进行扫码 **属性**|**类型**|**描述** ---|---|--- success|function|接口调用成功的回调函数 fail|function|接口调用失败的回调函数 complete|function|接口调用结束的回调函数(调用成功、失败都会执行) > js示例: ```js Page({ onLoad: function (options) { swan.scanCode({ success(e) { console.log(e); console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ``` --- ### 6、`swan.getSystemInfoSync` 和 `swan.getSystemInfo` 获取系统信息 **属性**|**类型**|**描述** ---|---|--- success|function|接口调用成功的回调函数 fail|function|接口调用失败的回调函数 complete|function|接口调用结束的回调函数(调用成功、失败都会执行) > 成功返回值: **属性**|**类型**|**描述** ---|---|--- brand|string|设备品牌 model|string|设备型号 pixelRatio|string|设备像素比 screenWidth|string|屏幕宽度 screenHeight|number|屏幕高度 windowWidth|number|可使用窗口宽度 windowHeight|number|可使用窗口高度 statusBarHeight|number|状态栏的高度 navigationBarHeight|number|导航栏的高度 language|string|宿主 App 设置的语言 version|string|宿主 App 版本号 system|string|操作系统及版本 platform|string|客户端平台 fontSizeSetting|number|用户字体大小设置 > js示例: ```js Page({ onLoad: function (options) { swan.getSystemInfo({ success(){ console.log(res); console.log('成功'); }, fail(){ console.log('失败'); }, complete(){ console.log('成功或失败'); } }) } }) ```