;

1.注意点 小程序中定时器在页面切换时候并不会中断,后台会持续叠加请求,因此在页面销毁和隐藏时候需要中断循环,此处通过设置一个全局的标志位来处理 2.代码 data: { timerContinue: true }, // 点击左上角返回时候触发 onUnload: function () { this.data.timerContinue = false }, // 按系统home键返回时候触发 onHide: function () { this.data.timerContinue = false }, onShow: function () { this.data.timerContinue = true // 如果在tab对应的页面中,每次进入需要重新启动循环 this.updateEndTime(23,59,59) }, updateEndTime: function (_hour, _minute, _second) {  //当前时间,距1970年1月1日的秒数 //通过返回的小时及分钟生成对应的日期对象 var now = new Date() var end = new Date() end.setHours(_hour) end.setMinutes(_minute) end.setSeconds(_second) //…

小程序中倒计时处理 9 天前
;

1,问题描述 用户通过分享进入商品详情页,此时小程序底部没有tab切换菜单,同时没有直观的按钮跳转到首页,左上角也没有返回上一页箭头,此时如果用户点击系统的Home返回键会退出小程序 2. 另一个问题 用户从上一步退出后,从小程序的最近使用下面再次进入,依然是刚刚退出的页面,没有直观的办法触达其它页面 3. 解决思路 首先想到通过场景值来做业务判断 4.场景值相关知识 app.js文件中 onShow: function (e) { console.log(e.scene) }, onLaunch: function (e) { console.log(e.scene) }, page页面中获取 onShow: function (e) { let val = wx.getLaunchOptionsSync() console.log(val.scene) }, 经过一番尝试发现,这个场景值只在小程序初次载入时候能获取到,用户如果刚刚打开过小程序,然后又通过别人分享到达商品页,此时的场景值是自己上次载入时候的值,所以这时候场景值并不能作为用户来源的依据 5.换个思路 既然场景值无法用,想到从路由列表入手,分享进入的用户,历史路由里只有唯一的一个当前页路由,这也是没有左上角返回按钮的原因所在,如果路由表长度为1,那么就显示一个跳转到首页的按钮出…

小程序中通过分享链接进入的用户如何有效触达其它页面? 15 天前
;

1.业务描述 通过微信支付开通vip,判断信息更新后再跳转 2.产生问题 通过setTimeout进行间隔一秒发送请求,数据比较,成功更新后通过wx.navigateTo跳转,此时setTimeout依然在后台持续调用 3.解决思路 setTimeout在每次调用后将生成一个标识符,而且每次都不同,所以用一个数组来保存起来,同时在页面离开时候清除所有的定时器 4.代码 data: { oldVal: ”, timeList: [] }, onLoad: function(options) { this.pay() }, // 点击左上角返回箭头时候触发 onUnload: function(options) { for (let i = 0; i < this.data.timeList.length; i++) { clearTimeout(this.data.timeList[i]) } }, // 点击系统Home键返回上一步时候触发 onHide: function(options) { for (let i = 0; i < this.data.timeList.length; i++) { clearTimeout(this.data.timeList[i]) } }, checkIsUpdate: function…

小程序中setTimeout轮询判断数据更新后跳转 15 天前
;

问题来源: 用户使用小程序时若关闭了定位权限,想要重新打开时操作不易,所以要引导去设置里重新打开 解决: 当第一次关闭授权定位后,wx.chooseLocation就会一直调用fail方法,所以当点击打开位置功能时,最好先判断当前是否关闭了定位授权(见wx.getSetting文档详情),再会跳出自定义弹框(showCon),引导前往设置打开定位 wx.chooseLocation({ success: function(e) { //允许打开定位 }, fail: () => { //不允许打开定位 wx.getSetting({ success: (res) => { if (!res.authSetting[‘scope.userLocation’]) { //打开提示框,提示前往设置页面 that.setData({ showCon: true }) } } }) } }) 由于前往设置需要使用button的open-type,因此弹框需要自定义,例如下方,不需要弹框的情况下引用button组件即可(详情见官方文档) //wxml <view wx:if="{{showCon}}" class="modal-mask" bindtap="changeModalCanc…

小程序中引导重新打开定位权限 17 天前
;

1.找到需要的图标,添加到购物车 https://www.iconfont.cn/ 2.打开购物车,点击下载代码 3.复制iconfont.css中的代码,放到app.wxss(全局样式,方便复用) 4.页面中使用 <text class="iconfont icon-gouwuche"></text>

小程序使用字体图标 2019年8月6日
;

1.相关代码 gotoAnchor: function() { const query = wx.createSelectorQuery() query.select(‘.cart-evaluation’).boundingClientRect() query.selectViewport().scrollOffset() query.exec(function(res){ res[0].top // #the-id节点的上边界坐标 res[1].scrollTop // 显示区域的竖直滚动位置 let distance = res[0].top + res[1].scrollTop wx.pageScrollTo({ scrollTop: distance }) }) } 参考链接: https://developers.weixin.qq.com/miniprogram/dev/api/wxml/SelectorQuery.html https://developers.weixin.qq.com/miniprogram/dev/framework/view/selector.html

小程序中的锚点跳转 2019年7月3日
;

出于安全考虑,即日起,我们不再帮助用户无感知的申请腾讯云云 API 密钥,受此影响,腾讯云微信小程序解决方案 Wafer2 提供的 sdk.config.json 中的 qcloudSecretId 和 qcloudSecretKey 字段将为空,这会导致登录失败,并返回错误提示:ERR_REQUEST_PARAM 。 你可以通过以下两种方式修复该问题: 1. 关闭腾讯云代理登录,使用微信小程序 AppID 和 AppSecret 登录: 修改 server/config.js 中的 useQcloudLogin 为 false,并填写上 appId 和 appSecret 字段(分别为微信小程序的 AppID 和 AppSecret),重新部署代码即可。 2. 手动填写腾讯云云 API 密钥: 登录腾讯云云 API 密钥控制台申请云 API 密钥,并在 server/config.js 的 CONF 中添加如下三个字段: qcloudAppId: ‘你的腾讯云 AppID’, qcloudSecretId: ‘你的腾讯云 SecretId’, qcloudSecretKey: ‘你的腾讯云 SecretKey’, 重新部署代码即可生效。 由于上传接口也会使用到腾讯云云 API 密钥,如遇到上传接口报错,也请参考如上 2 的方法排查。 来源:…

小程序登录报错‘error : “ERR_REQUEST_PARAM”’ 2019年6月12日
;

1.依照文档进行到如下步骤,却找不到相关按钮 https://console.qcloud.com/lav2/dev 进行到第5步,找不到相关按钮及菜单 2。解决(这个按钮默认被隐藏) 工具 -> 工具栏管理 -> 自定义工具栏 -> 自定义工具管理 参考链接:https://blog.csdn.net/u013176866/article/details/89321281

小程序-开发环境开通-遇到的问题 2019年6月12日
;

一:安装及使用 1.在当前目录下,安装依赖 $ cd mpvue $ npm install 2.安装sass的依赖包 npm install –save-dev sass-loader //sass-loader依赖于node-sass npm install –save-dev node-sass 3.在build文件夹下的webpack.base.conf.js的rules里面添加配置 { test: /\.sass$/, loaders: [‘style’, ‘css’, ‘sass’] } 4.在APP.vue中修改style标签 <style lang="scss"> $background:#ccc; html{background:$background;} </style> 二:引入外部sass img.scss,文件路径’static/img.scss’,内容如下 $bgjpg : ‘http://baidu.com’ $color : red APP.vue中引入 <style lang="scss"> @import "static/img.scss"; html{ background-image: url($bgjp…

mpvue安装sass以及引入外部sass文件 2018年6月12日
;

1.获取用户信息 <button open-type="getUserInfo" @getuserinfo="bindGetUserInfo">进入帐篷,开始占卜</button> methods:{ bindGetUserInfo (e) { var gender = e.mp.detail.userInfo.gender wx.setStorageSync(‘gender’, gender) this.saveUserInfo() wx.navigateTo({url: ‘/pages/item/main’}) } } 2.获取保存图片到相册权限 <button v-if="!isAuthFlag" open-type="openSetting" @opensetting="authSetting">打开授权</button> methods:{ authSetting (e) { if (e.mp.detail.authSetting[‘scope.writePhotosAlbum’]) { this.isAuthFlag = true } } }

mpvue中button组件授权回调 2018年6月5日
;

路径:server/app.js const path = require(‘path’); const serve = require(‘koa-static’); const main = serve(path.join(__dirname)); app.use(main); //读取静态资源 nodejs中安装包 npm i koa-static -s

wafer2静态资源路径访问 2018年5月30日
;

<button open-type="getUserInfo" @getuserinfo="bindGetUserInfo">获取用户信息</button> bindGetUserInfo (e) { console.log(e.mp.detail.userInfo) }

mpvue中getuserinfo 2018年5月28日