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

微信小程序API 数据分析

wx.reportAnalytics(string eventName, Object data) 自定义分析数据上报接口。使用前,需要在小程序管理后台自定义分析中新建事件,配置好事件名与字段。 参数 string eventName 事件名 Object data 上报的自定义数据,key 为配置中的字段名,value 为上报的数据。 示例代码 wx.reportAnalytics('purchase', { price: 120, color: 'red' })

微信小程序API 数据上报

wx.reportMonitor(string name, number value) 基础库 2.0.1 开始支持,低版本需做兼容处理。 自定义业务数据监控上报接口。 参数 string name 监控ID,在「小程序管理后台」新建数据指标后获得 number value 上报数值,经处理后会在「小程序管理后台」上展示每分钟的上报总量 使用说明 使用前,需要在「小程序管理后台-运维中心-性能监控-业务数据监控」中新建监控事件,配置监控描述与告警类型。每一个监控事件对应唯一的监控ID,开发者最多可以创建128个监控事件。 示例代码 wx.reportMonitor('1', 1)

微信小程序API 用户信息 wx.getUserInfo(OBJECT)-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

微信小程序API 用户信息 wx.getUserInfo(OBJECT)

wx.getUserInfo(OBJECT) ​获取用户信息,withCredentials 为 true 时需要先调用wx.login接口 OBJECT参数说明: 参数名 类型 必填 说明 最低版本 withCredentials Boolean 否 是否带上登录态信息 1.1.0 lang String 否 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文 1.4.0 success Function 否 接口调用成功的回调函数   fail Function 否 接口调用失败的回调函数   complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)   注:当 withCredentials 为 true 时,要求此前有调用过 wx.login 且登录态尚未过期,此时返回的数据会包含 encryptedData, iv 等敏感信息;当 withCredentials 为 false 时,不要求有登录态,返回的数据不包含 encryptedData, iv 等敏感信息。 success返回参数说明: 参数 类型 说明 userInfo OBJECT 用户信息对象,不包含 openid 等敏感信息 rawData String 不包括敏感信息的原始数据字符串,用于计算签名。 signature String 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,参考文档signature。 encryptedData String 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法 iv String 加密算法的初始向量,详细见加密数据解密算法 示例代码: wx.getUserInfo({ success: function(res) { var userInfo = res.userInfo var nickName = userInfo.nickName var avatarUrl = userInfo.avatarUrl var gender = userInfo.gender //性别 0:未知、1:男、2:女 var province = userInfo.province var city = userInfo.city var country = userInfo.country } })...

微信小程序API 账号信息

Object wx.getAccountInfoSync() 基础库 2.2.2 开始支持,低版本需做兼容处理。 获取当前帐号信息。线上小程序版本号仅支持在正式版小程序中获取,开发版和体验版中无法获取。 返回值 Object 帐号信息 属性 类型 说明 miniProgram Object 小程序帐号信息 plugin Object 插件帐号信息(仅在插件中调用时包含这一项) miniProgram 的结构 属性 类型 说明 最低版本 appId string 小程序 appId envVersion string 小程序版本 2.10.0 version string 线上小程序版本号 2.10.2 miniProgram.envVersion 的合法值 值 说明 最低版本 develop 开发版 trial 体验版 release 正式版 plugin 的结构 属性 类型 说明 appId string 插件 appId version string 插件版本号 示例代码 const accountInfo = wx.getAccountInfoSync(); console.log(accountInfo.miniProgram.appId) // 小程序 appId console.log(accountInfo.plugin.appId) // 插件 appId console.log(accountInfo.plugin.version) // 插件版本号, 'a.b.c' 这样的形式

微信小程序API 打开小程序

wx.navigateToMiniProgram(OBJECT) 基础库 1.3.0 开始支持,低版本需做兼容处理 iOS 微信客户端 6.5.9 版本开始支持,Android 客户端即将在 6.5.10 版本开始支持,请先使用 iOS 客户端进行调试 打开同一公众号下关联的另一个小程序。 OBJECT参数说明: 参数名 类型 必填 说明 appId String 是 要打开的小程序 appId path String 否 打开的页面路径,如果为空则打开首页 extraData Object 否 需要传递给目标小程序的数据,目标小程序可在 App.onLaunch(),App.onShow()中获取到这份数据。详情 envVersion String 否 要打开的小程序版本,有效值 develop(开发版),trial(体验版),release(正式版) ,仅在当前小程序为开发版或体验版时此参数有效;如果当前小程序是体验版或正式版,则打开的小程序必定是正式版。默认值 release success Function 否 接口调用成功的回调函数 fail Function 否 接口调用失败的回调函数 complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行) success返回参数说明: 参数名 类型 说明 errMsg String 调用结果 示例代码: wx.navigateToMiniProgram({ appId: '', path: 'pages/index/index?id=123', extraData: { foo: 'bar' }, envVersion: 'develop', success(res) { // 打开成功 } }) Bug & Tip tip: 在开发者工具上调用此 API 并不会真实的跳转到另外的小程序,但是开发者工具会校验本次调用跳转是否成功详情 tip: 开发者工具上支持被跳转的小程序处理接收参数的调试详情 tip: 只有同一公众号下的关联的小程序之间才可相互跳转 详情 wx.navigateBackMiniProgram(OBJECT) 基础库 1.3.0 开始支持,低版本需做兼容处理 iOS 微信客户端 6.5.9 版本开始支持,Android 客户端即将在 6.5.10 版本开始支持,请先使用 iOS 客户端进行调试 返回到上一个小程序,只有在当前小程序是被其他小程序打开时可以调用成功 OBJECT参数说明: 参数名 类型 必填 说明 extraData Object 否 需要返回给上一个小程序的数据,上一个小程序可在App.onShow()中获取到这份数据。详情 success Function 否 接口调用成功的回调函数 fail Function 否 接口调用失败的回调函数 complete...

微信小程序API 用户数据的签名验证和加解密

用户数据的签名验证和加解密 数据签名校验 为了确保 开放接口 返回用户数据的安全性,微信会对明文数据进行签名。开发者可以根据业务需要对数据包进行签名校验,确保数据的完整性。 签名校验算法涉及用户的session_key,通过 wx.login 登录流程获取用户session_key,并自行维护与应用自身登录态的对应关系。 通过调用接口(如 wx.getUserInfo)获取数据时,接口会同时返回 rawData、signature,其中 signature = sha1( rawData + session_key ) 开发者将 signature、rawData 发送到开发者服务器进行校验。服务器利用用户对应的 session_key 使用相同的算法计算出签名 signature2 ,比对 signature 与 signature2 即可校验数据的完整性。 如wx.getUserInfo的数据校验: 接口返回的rawData: { "nickName": "Band", "gender": 1, "language": "zh_CN", "city": "Guangzhou", "province": "Guangdong", "country": "CN", "avatarUrl": "http://wx.qlogo.cn/mmopen/vi_32/1vZvI39NWFQ9XM4LtQpFrQJ1xlgZxx3w7bQxKARol6503Iuswjjn6nIGBiaycAjAtpujxyzYsrztuuICqIM5ibXQ/0" } 用户的 session-key: HyVFkGl5F5OQWJZZaNzBBg== 所以,用于签名的字符串为: {"nickName":"Band","gender":1,"language":"zh_CN","city":"Guangzhou","province":"Guangdong","country":"CN","avatarUrl":"http://wx.qlogo.cn/mmopen/vi_32/1vZvI39NWFQ9XM4LtQpFrQJ1xlgZxx3w7bQxKARol6503Iuswjjn6nIGBiaycAjAtpujxyzYsrztuuICqIM5ibXQ/0"}HyVFkGl5F5OQWJZZaNzBBg== 使用sha1得到的结果为 75e81ceda165f4ffa64f4068af58c64b8f54b88c 加密数据解密算法 接口如果涉及敏感数据(如wx.getUserInfo当中的 openId 和unionId ),接口的明文内容将不包含这些敏感数据。开发者如需要获取敏感数据,需要对接口返回的加密数据( encryptedData )进行对称解密。解密算法如下: 对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。 对称解密的目标密文为 Base64_Decode(encryptedData), 对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是16字节 对称解密算法初始向量 iv 会在数据接口中返回。 微信官方提供了多种编程语言的示例代码(点击下载)。每种语言类型的接口名字均一致。调用方式可以参照示例。 另外,为了应用能校验数据的有效性,我们会在敏感数据加上数据水印( watermark ) watermark参数说明: 参数 类型 说明 watermark OBJECT 数据水印 appid String 敏感数据归属appid,开发者可校验此参数与自身appid是否一致 timestamp DateInt 敏感数据获取的时间戳, 开发者可以用于数据时效性校验 如接口wx.getUserInfo敏感数据当中的watermark: { "openId": "OPENID", "nickName": "NICKNAME", "gender": GENDER, "city": "CITY", "province": "PROVINCE", "country": "COUNTRY", "avatarUrl": "AVATARURL", "unionId": "UNIONID", "watermark": { "appid":"APPID", "timestamp":TIMESTAMP } } 注:此前提供的加密数据(encryptData)以及对应的加密算法将被弃用,请开发者不要再依赖旧逻辑。

微信小程序API WXML节点信息

wx.createSelectorQuery() 基础库 1.4.0 开始支持,低版本需做兼容处理 返回一个SelectorQuery对象实例。可以在这个实例上使用select等方法选择节点,并使用boundingClientRect等方法选择需要查询的信息。 示例代码: Page({ queryMultipleNodes: function(){ var query = wx.createSelectorQuery() query.select('#the-id').boundingClientRect() query.selectViewport().scrollOffset() query.exec(function(res){ res[0].top // #the-id节点的上边界坐标 res[1].scrollTop // 显示区域的竖直滚动位置 }) } }) selectorQuery selectorQuery 对象的方法列表: 方法 参数 说明 select selector 参考下面详细介绍 selectAll selector 参考下面详细介绍 selectViewport   参考下面详细介绍 exec [callback] 参考下面详细介绍 selectorQuery.select(selector) 在当前页面下选择第一个匹配选择器selector的节点,返回一个NodesRef对象实例,可以用于获取节点信息。 selector类似于CSS的选择器,但仅支持下列语法。 ID选择器:#the-id class选择器(可以连续指定多个):.a-class.another-class 子元素选择器:.the-parent > #the-child.a-class 多选择器的并集:#a-node, .some-other-nodes selectorQuery.selectAll(selector) 在当前页面下选择匹配选择器selector的节点,返回一个NodesRef对象实例。 与selectorQuery.selectNode(selector)不同的是,它选择所有匹配选择器的节点。 selectorQuery.selectViewport() 选择显示区域,可用于获取显示区域的尺寸、滚动位置等信息,返回一个NodesRef对象实例。 nodesRef.boundingClientRect([callback]) 添加节点的布局位置的查询请求,相对于显示区域,以像素为单位。其功能类似于DOM的getBoundingClientRect。返回值是nodesRef对应的selectorQuery。 返回的节点信息中,每个节点的位置用left、right、top、bottom、width、height字段描述。如果提供了callback回调函数,在执行selectQuery的exec方法后,节点信息会在callback中返回。 示例代码: Page({ getRect: function(){ wx.createSelectorQuery().select('#the-id').boundingClientRect(function(rect){ rect.id // 节点的ID rect.dataset // 节点的dataset rect.left // 节点的左边界坐标 rect.right // 节点的右边界坐标 rect.top // 节点的上边界坐标 rect.bottom // 节点的下边界坐标 rect.width // 节点的宽度 rect.height // 节点的高度 }).exec() }, getAllRects: function(){ wx.createSelectorQuery().selectAll('.a-class').boundingClientRect(function(rects){ rects.forEach(function(rect){ rect.id // 节点的ID rect.dataset // 节点的dataset rect.left // 节点的左边界坐标 rect.right // 节点的右边界坐标 rect.top // 节点的上边界坐标 rect.bottom // 节点的下边界坐标 rect.width // 节点的宽度 rect.height // 节点的高度...

微信小程序API tabBar

wx.showTabBarRedDot(Object object) 基础库 1.9.0 开始支持,低版本需做兼容处理。 显示 tabBar 某一项的右上角的红点 参数 Object object 属性 类型 默认值 必填 说明 index number 是 tabBar 的哪一项,从左边算起 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) wx.showTabBar(Object object) 基础库 1.9.0 开始支持,低版本需做兼容处理。 显示 tabBar 参数 Object object 属性 类型 默认值 必填 说明 animation boolean false 否 是否需要动画效果 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) wx.setTabBarStyle(Object object) 基础库 1.9.0 开始支持,低版本需做兼容处理。 动态设置 tabBar 的整体样式 参数 Object object 属性 类型 默认值 必填 说明 color string 否 tab 上的文字默认颜色,HexColor selectedColor string 否 tab 上的文字选中时的颜色,HexColor backgroundColor string 否 tab 的背景色,HexColor borderStyle string 否 tabBar上边框的颜色, 仅支持 black/white success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) 示例代码 wx.setTabBarStyle({ color: '#FF0000', selectedColor: '#00FF00',...

微信小程序API 字体

wx.loadFontFace(Object object) 基础库 2.1.0 开始支持,低版本需做兼容处理。 动态加载网络字体,文件地址需为下载类型。’2.10.0’起支持全局生效,需在 app.js 中调用。 注意: 字体文件返回的 contet-type 参考 font,格式不正确时会解析失败。 字体链接必须是https(ios不支持http) 字体链接必须是同源下的,或开启了cors支持,小程序的域名是servicewechat.com canvas等原生组件不支持使用接口添加的字体 工具里提示 Faild to load font可以忽略 ‘2.10.0’ 以前仅在调用页面生效。 参数 Object object 属性 类型 默认值 必填 说明 最低版本 global boolean false 否 是否全局生效 2.10.0 family string 是 定义的字体名称 source string 是 字体资源的地址。建议格式为 TTF 和 WOFF,WOFF2 在低版本的iOS上会不兼容。 desc Object 否 可选的字体描述符 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) object.desc 的结构 属性 类型 默认值 必填 说明 style string ‘normal’ 否 字体样式,可选值为 normal / italic / oblique weight string ‘normal’ 否 字体粗细,可选值为 normal / bold / 100 / 200../ 900 variant string ‘normal’ 否 设置小型大写字母的字体显示文本,可选值为 normal / small-caps / inherit object.success 回调函数 参数 Object res 属性 类型 说明 status string 加载字体结果 object.fail 回调函数 参数 Object res 属性 类型...

微信小程序API 背景

wx.setBackgroundTextStyle(Object object) 基础库 2.1.0 开始支持,低版本需做兼容处理。 动态设置下拉背景字体、loading 图的样式 参数 Object object 属性 类型 默认值 必填 说明 textStyle string 是 下拉背景字体、loading 图的样式。 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) object.textStyle 的合法值 值 说明 最低版本 dark dark 样式 light light 样式 示例代码 wx.setBackgroundTextStyle({ textStyle: 'dark' // 下拉背景字体、loading 图的样式为dark }) wx.setBackgroundColor(Object object) 基础库 2.1.0 开始支持,低版本需做兼容处理。 动态设置窗口的背景色 参数 Object object 属性 类型 默认值 必填 说明 backgroundColor string 否 窗口的背景色,必须为十六进制颜色值 backgroundColorTop string 否 顶部窗口的背景色,必须为十六进制颜色值,仅 iOS 支持 backgroundColorBottom string 否 底部窗口的背景色,必须为十六进制颜色值,仅 iOS 支持 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) 示例代码 wx.setBackgroundColor({ backgroundColor: '#ffffff', // 窗口的背景色为白色 }) wx.setBackgroundColor({ backgroundColorTop: '#ffffff', // 顶部窗口的背景色为白色 backgroundColorBottom: '#ffffff', // 底部窗口的背景色为白色 })