微信小程序开发文档 第82页

微信小程序工具 概览-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

微信小程序工具 概览

为了帮助开发者简单和高效地开发微信小程序,我们推出了全新的开发者工具,集成了开发调试、代码编辑及程序发布等功能。 扫码登录 启动工具时,开发者需要使用已在后台绑定成功的微信号扫描二维码登录,后续所有的操作都会基于这个微信帐号

微信小程序API wx.updateWeChatApp

wx.updateWeChatApp() 基础库 2.12.0 开始支持,低版本需做兼容处理。 更新客户端版本。当判断用户小程序所在客户端版本过低时,可使用该接口跳转到更新微信页面。 参数 Object object 属性 类型 默认值 必填 说明 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

登录

登录 名称 功能说明 auth.code2Session 登录凭证校验 用户信息 名称 功能说明 auth.getPaidUnionId 云调用 用户支付完成后,获取该用户的 UnionId,无需用户授权 接口调用凭证 名称 功能说明 auth.getAccessToken 获取小程序全局唯一后台接口调用凭据(access_token) 数据分析 名称 功能说明 访问留存 名称 功能说明 analysis.getDailyRetain 云调用 获取用户访问小程序日留存 analysis.getMonthlyRetain 云调用 获取用户访问小程序月留存 analysis.getWeeklyRetain 云调用 获取用户访问小程序周留存 analysis.getDailySummary 云调用 获取用户访问小程序数据概况 访问趋势 名称 功能说明 analysis.getDailyVisitTrend 云调用 获取用户访问小程序数据日趋势 analysis.getMonthlyVisitTrend 云调用 获取用户访问小程序数据月趋势(能查询到的最新数据为上一个自然月的数据) analysis.getWeeklyVisitTrend 云调用 获取用户访问小程序数据周趋势 analysis.getUserPortrait 云调用 获取小程序新增或活跃用户的画像分布数据 analysis.getVisitDistribution 云调用 获取用户小程序访问分布数据 analysis.getVisitPage 云调用 访问页面 客服消息 名称 功能说明 customerServiceMessage.getTempMedia 云调用 获取客服消息内的临时素材 customerServiceMessage.send 云调用 发送客服消息给用户 customerServiceMessage.setTyping 云调用 下发客服当前输入状态给用户 customerServiceMessage.uploadTempMedia 云调用 把媒体文件上传到微信服务器 模板消息(已废弃) 名称 功能说明 templateMessage.addTemplate 云调用 组合模板并添加至帐号下的个人模板库(请注意,小程序模板消息接口【已废弃】,开发者可使用订阅消息功能) templateMessage.deleteTemplate 云调用 组合模板并添加至帐号下的个人模板库(请注意,小程序模板消息接口【已废弃】,开发者可使用订阅消息功能) templateMessage.getTemplateLibraryById 云调用 组合模板并添加至帐号下的个人模板库(请注意,小程序模板消息接口【已废弃】,开发者可使用订阅消息功能) templateMessage.getTemplateLibraryList 云调用 组合模板并添加至帐号下的个人模板库(请注意,小程序模板消息接口【已废弃】,开发者可使用订阅消息功能) templateMessage.getTemplateList 云调用 组合模板并添加至帐号下的个人模板库(请注意,小程序模板消息接口【已废弃】,开发者可使用订阅消息功能) templateMessage.send 云调用 组合模板并添加至帐号下的个人模板库(请注意,小程序模板消息接口【已废弃】,开发者可使用订阅消息功能) 统一服务消息 名称 功能说明 uniformMessage.send 云调用 下发小程序和公众号统一的服务消息 动态消息 名称 功能说明 updatableMessage.createActivityId 云调用 创建被分享动态消息的 activity_id updatableMessage.setUpdatableMsg 云调用 修改被分享的动态消息 插件管理 名称 功能说明 pluginManager.applyPlugin 云调用 向插件开发者发起使用插件的申请 pluginManager.getPluginDevApplyList 云调用 获取当前所有插件使用方(供插件开发者调用) pluginManager.getPluginList 云调用 查询已添加的插件 pluginManager.setDevPluginApplyStatus 云调用 修改插件使用申请的状态(供插件开发者调用) pluginManager.unbindPlugin 云调用 删除已添加的插件 附近的小程序 名称 功能说明 nearbyPoi.add 云调用 添加地点 nearbyPoi.delete 云调用 删除地点 nearbyPoi.getList 云调用 查看地点列表 nearbyPoi.setShowStatus 云调用 展示/取消展示附近小程序 小程序码 名称 功能说明 wxacode.createQRCode 云调用 获取小程序二维码,适用于需要的码数量较少的业务场景 wxacode.get 云调用 获取小程序码,适用于需要的码数量较少的业务场景 wxacode.getUnlimited 云调用 获取小程序码,适用于需要的码数量极多的业务场景 内容安全 名称 功能说明 security.imgSecCheck 云调用...

wx.cloud.uploadFile

将本地资源上传至云存储空间,如果上传至同一路径则是覆盖写 请求参数 字段 说明 数据类型 默认值 必填 cloudPath 云存储路径,命名限制见文件名命名限制 String – Y filePath 要上传文件资源的路径 String – Y header HTTP 请求 Header, header 中不能设置 Referer Object – N config 配置 Object – N success 成功回调 fail 失败回调 complete 结束回调 config 对象定义 字段 说明 数据类型 env 使用的环境 ID,填写后忽略 init 指定的环境 String success 返回参数 字段 说明 数据类型 fileID 文件 ID String statusCode 服务器返回的 HTTP 状态码 Number errMsg 错误信息,格式 uploadFile:ok String fail 返回参数 字段 说明 数据类型 errCode 错误码 Number errMsg 错误信息,格式 uploadFile:fail msg String 返回值 如果请求参数中带有 success/fail/complete 回调中的任一个,则会返回一个 UploadTask 对象,通过 UploadTask 对象可监听上传进度变化事件,以及取消上传任务。 使用示例 Callback 风格 wx.cloud.uploadFile({ cloudPath: 'example.png', filePath: '', // 文件路径 success: res => { // get resource ID console.log(res.fileID) }, fail: err => { // handle error } }) Promise 风格 wx.cloud.uploadFile({ cloudPath: 'example.png', filePath: '',...

wx.cloud.callFunction

调用云函数 OBJECT参数说明 参数 类型 必填 说明 name String 是 云函数名 data Object 否 传递给云函数的参数 config Object 否 局部覆写 wx.cloud.init 中定义的全局配置 success Function 否 返回云函数调用的返回结果 fail Function 否 接口调用失败的回调函数 complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行) config 对象定义 字段 说明 数据类型 env 使用的环境 ID,填写后忽略 init 指定的环境 String success返回参数/promise返回结果说明: 参数 类型 说明 最低版本 errMsg String 通用返回结果 result String 云函数返回的结果 requestID String 云函数执行 ID,可用于在控制台查找日志 2.3.0 fail返回参数说明 字段 说明 数据类型 errCode 错误码 Number errMsg 错误信息,格式 apiName:fail msg String 示例代码: 假设已有一个云函数 add: exports.add = (event, context, cb) => { return event.x + event.y } Callback 风格调用 wx.cloud.callFunction({ // 要调用的云函数名称 name: 'add', // 传递给云函数的参数 data: { x: 1, y: 2, }, success: res => { // output: res.result === 3 }, fail: err => { // handle error }, complete:...

wx.openDocument(Object object)

新开页面打开文档。微信客户端 7.0.12 版本前默认显示右上角菜单按钮,之后的版本默认不显示,需主动传入 showMenu。 参数 Object object 属性 类型 默认值 必填 说明 最低版本 filePath string 是 文件路径 (本地路径) ,可通过 downloadFile 获得 showMenu boolean false 否 是否显示右上角菜单 2.11.0 fileType string 否 文件类型,指定文件类型打开文件 1.4.0 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) object.fileType 的合法值 值 说明 最低版本 doc doc 格式 docx docx 格式 xls xls 格式 xlsx xlsx 格式 ppt ppt 格式 pptx pptx 格式 pdf pdf 格式 示例代码 wx.downloadFile({ // 示例 url,并非真实存在 url: 'http://example.com/somefile.pdf', success: function (res) { const filePath = res.tempFilePath wx.openDocument({ filePath: filePath, success: function (res) { console.log('打开文档成功') } }) } })

Database.RegExp

构造正则表达式,仅需在普通 js 正则表达式无法满足的情况下使用 options 参数说明 options 支持 i, m, s 这三个 flag,注意 JavaScript 原生正则对象构造时仅支持其中的 i, m 两个 flag,因此需要使用到 s 这个 flag 时必须使用 db.RegExp 构造器构造正则对象。flag 的含义见下表: flag 说明 i 大小写不敏感 m 跨行匹配;让开始匹配符 ^ 或结束匹配符 $ 时除了匹配字符串的开头和结尾外,还匹配行的开头和结尾 s 让 . 可以匹配包括换行符在内的所有字符 基础用法示例 // 原生 JavaScript 对象 db.collection('todos').where({ description: /miniprogram/i }) // 数据库正则对象 db.collection('todos').where({ description: db.RegExp({ regexp: 'miniprogram', options: 'i', }) }) // 用 new 构造也是可以的 db.collection('todos').where({ description: new db.RegExp({ regexp: 'miniprogram', options: 'i', }) })

微信小程序云开发API 指定返回结果中记录需返回的字段

Collection.field / Query.field / Document.field 支持端:小程序 , 云函数 , Web 指定返回结果中记录需返回的字段 参数 projection: Object 返回值 Collection 说明 方法接受一个必填对象用于指定需返回的字段,对象的各个 key 表示要返回或不要返回的字段,value 传入 true|false(或 1|-1)表示要返回还是不要返回。 示例代码 只返回 description, done 和 progress 三个字段: db.collection('todos').field({ description: true, done: true, progress: true, }) .get() .then(console.log) .catch(console.error)

权限控制

数据库的权限分为小程序端和管理端,管理端包括云函数端和控制台。小程序端运行在小程序中,读写数据库受权限控制限制,管理端运行在云函数上,拥有所有读写数据库的权限。云控制台的权限同管理端,拥有所有权限。小程序端操作数据库应有严格的安全规则限制。 我们提供了两种权限控制方案,第一种是初期提供的基础的四种简易权限设置,第二种是灵活的、可自定义的权限控制,即数据库安全规则。 基础权限设置 以下几种权限配置是基础的简易权限配置,如果需要灵活的自定义权限配置,请使用数据库安全规则 每个集合可以拥有一种权限配置,权限配置的规则是作用在集合的每个记录上的。出于易用性和安全性的考虑,云开发为云数据库做了小程序深度整合,在小程序中创建的每个数据库记录都会带有该记录创建者(即小程序用户)的信息,以 _openid 字段保存用户的 openid 在每个相应用户创建的记录中。因此,权限控制也相应围绕着一个用户是否应该拥有权限操作其他用户创建的数据展开。 以下按照权限级别从宽到紧排列如下: 仅创建者可写,所有人可读:数据只有创建者可写、所有人可读;比如文章。 仅创建者可读写:数据只有创建者可读写,其他用户不可读写;比如用私密相册。 仅管理端可写,所有人可读:该数据只有管理端可写,所有人可读;如商品信息。 仅管理端可读写:该数据只有管理端可读写;如后台用的不暴露的数据。 简而言之,管理端始终拥有读写所有数据的权限,小程序端始终不能写他人创建的数据,小程序端的记录的读写权限其实分为了 “所有人可读,只有创建者可写“、”仅创建者可读写“、”所有人可读,仅管理端可写“、”所有人不可读,仅管理端可读写“。 对一个用户来说,不同模式在小程序端和管理端的权限表现如下: 模式 小程序端读自己创建的数据 小程序端写自己创建的数据 小程序端读他人创建的数据 小程序端写他人创建的数据 管理端读写任意数据 仅创建者可写,所有人可读 √ √ √ × √ 仅创建者可读写 √ √ × × √ 仅管理端可写,所有人可读 √ × √ × √ 仅管理端可读写:该数据只有管理端可读写 × × × × √ 在设置集合权限时应谨慎设置,防止出现越权操作。 数据库安全规则 开发者工具 1.02.1911252 起支持配置 安全规则是一个让开发者可以灵活地自定义前端数据库读写权限的能力,通过配置安全规则,开发者可以精细化的控制集合中所有记录的读、写权限,自动拒绝不符合安全规则的前端数据库请求,保障数据安全。使用安全规则,你将获得以下能力: 灵活自定义集合记录的读写权限:获得比基础的四种基础权限设置更灵活、强大的读写权限控制,让读写权限控制不再强制依赖于 _openid 字段和用户 openid 防止越权访问和越权更新:用户只能获取通过安全规则限制的用户所能获取的内容,越权获取数据将被拒绝 限制新建数据的内容:让新建数据必须符合规则,如可以要求权限标记字段必须为用户 openid 同时随着安全规则的开放,前端批量更新(where.update、where.remove)也随之开放(基础库 2.9.4 起),开发者在进行批量更新时应搭配安全规则使用以保障数据安全。 简介 安全规则要求前端发起的查询条件必须是安全规则的子集,否则拒绝访问。比如定义一个读写访问规则是 auth.openid == doc._openid,则表示访问时的查询条件(doc)的 openid 必须等于当前用户的 openid (由系统赋值的不可篡改的 auth.openid 给出),如果查询条件没有包含这项,则表示尝试越权访问 _openid 字段不等于自身的记录,会被后台拒绝访问。 与基础权限配置的对比 除了安全规则外,云开发数据库提供了四种基础权限配置,适用于简单的前端访问控制,只支持 4 种预设的规则(对集合中的每条数据记录): 所有用户可读,仅创建者可写 仅创建者可读写 所有用户可读 所有用户不可读写 但基础的设置给前端的访问权限控制是有一定局限性、同时会带来一些容易疑惑的、需要深入理解的系统默认行为: 访问权限控制要求只能基于记录的 _openid 字段和用户的 openid,控制粒度较粗、相对不灵活 当权限为 “仅创建者可读写” 时,查询时会默认给查询条件加上一条 _openid 必须等于用户 openid 当权限为 “仅创建者可读写” 或 “所有用户可读,仅创建者可写” 时,更新前会默认先带上 _openid 必须等于用户 openid 的查询条件,再将查询到的结果进行更新,即使是用 doc.update 也是如此(因此我们会见到即使我们没有对应 _id 的记录的访问权限,但是更新操作不会失败,只会在返回的结果中说明 updated 更新的记录数量为 0)。 创建记录时,会自动给记录加上 _openid 字段,值等于用户 openid,并且不允许用户在创建记录时尝试设置 _openid 更新记录时,不允许修改 _openid 因此,我们建议开发者使用新推出的数据库安全规则取代基础权限配置,可以让数据库访问的行为更加明确,同时取消需要深入理解的系统默认行为,让数据库权限控制更加简单明确。 新的安全规则与旧的四种基础权限配置的对应关系如下,我们在此先给出样例,下方再给出具体的安全规则使用指南: 新自定义安全规则与旧权限配置的对应关系 所有用户可读,仅创建者可写 { "read": true, "write": "doc._openid == auth.openid" } 仅创建者可读写 { "read": "doc._openid == auth.openid", "write": "doc._openid == auth.openid" } 所有用户可读 { "read": true, "write": false } 所有用户不可读写 { "read": false, "write": false } 规则编写 我们可以在控制台对各个集合分别配置安全规则,入口在集合权限配置页,在基础的四种权限配置外还提供了 “自定义规则” 的选项。 每个集合都有独立的安全规则配置,配置的格式为 json,比如如下一个在某集合上的安全规则配置:...

wx.chooseMessageFile(Object object)

基础库 2.5.0 开始支持,低版本需做兼容处理。 从客户端会话选择文件。 参数 Object object 属性 类型 默认值 必填 说明 最低版本 count number 是 最多可以选择的文件个数,可以 0~100 type string ‘all’ 否 所选的文件的类型 extension Array.<string> 否 根据文件拓展名过滤,仅 type==file 时有效。每一项都不能是空字符串。默认不过滤。 2.6.0 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) object.type 的合法值 值 说明 最低版本 all 从所有文件选择 video 只能选择视频文件 image 只能选择图片文件 file 可以选择除了图片和视频之外的其它的文件 success返回参数说明: 属性 类型 说明 tempFiles Array.<Object> 返回选择的文件的本地临时文件对象数组 res.tempFiles 的结构 属性 类型 说明 path string 本地临时文件路径 (本地路径) size number 本地临时文件大小,单位 B name string 选择的文件名称 type string 选择的文件类型 time number 选择的文件的会话发送时间,Unix时间戳,工具暂不支持此属性 type 的合法值 值 说明 最低版本 video 选择了视频文件 image 选择了图片文件 file 选择了除图片和视频的文件 wx.chooseMessageFile({ count: 10, type: 'image', success (res) { // tempFilePath可以作为img标签的src属性显示图片 const tempFilePaths = res.tempFiles } })