wxml: <view bindtap="doubleTap" bindtouchstart="touchStart" bindtouchend="touchEnd">click me</view> js: // 防止重复点击 touchStart(e) { this.touchStartTime = e.timeStamp; }, touchEnd(e) { this.touchEndTime = e.timeStamp…
先看图 这个是JavaScript语言自身存在的一个问题.说道这里不得不提一下网上流传的JavaScript搞笑图 我们在使用云开发来开发微信小程序的时候,会经常遇到JavaScript小数计算精度失准的问题.特别是实现钱包计算的功能.虽然整数计算不会出错,但总不能要求微信小程序内都是整数计算吧,这不科学. 那么开发小程序涉及到小数计算的时候,如何防止小数计算精度失准. 其实有很多方法,这里主要推荐我觉得比较好的解决办法.就是使用math.js这个npm包来实现计算. 废话少说,直接上代码!!!…
其实微信小程序前端和云端都是可以调用短信平台接口发送短信的,使用云端云函数的好处是无需配置域名,也没有个数限制. 本文使用的是榛子云短信平台(http://smsow.zhenzikj.com) ,SDK下载: http://smsow.zhenzikj.com/doc/sdk.html 1. 安装下载后的SDK在cloudfunctions文件夹下会包含3个云函数文件夹,如下: 由于目前IDE没有云函数导入功能,您需要手工创建同名的云函数,然后将云函数下的文件手工拷进去 注:下载的SDK是一个…
微信小程序bug记录 textarea textarea在模拟器上没有padding,可是在真机上会自带padding,而且在外部改不了,并且在安卓和IOS上padding还不一样 第一张图是在开发工具上的,第二张图是在IOS真机上的.从上图可以看出来,在开发工具上显示很正常,而且没有padding,可是在真机上左上角就出现了padding,并且无论你在外部对textarea的padding做任何处理,都无法覆盖. 目前有一种解决方式是根据ios和android的不同平台来给teaxarea设置…
基于微信的通知渠道,微信为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.(微信6.5.2及以上版本支持模板功能.低于该版本将无法收到模板消息.) 模板推送位置:服务通知(点击查看详情还能跳转到下发消息的小程序的指定页面) 模板下发条件:用户本人在微信体系内与页面有交互行为后触发 微信小程序模板消息使用说明(官方文档):https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html 为了防止对模板消息的滥用,带来…
由于项目需要,最近便在做 一个类似于美团的餐饮平台的的微信微信小程序 ,项目有十几个页面,那么页面间的传值被经常用到.在小程序中页面间的传值主要有使用全局变量和本地存储这两种方法,在这个项目中我采用的是全局变量的方法 项目中使用的地方 下图为用户下单页面,下单时要选择配送地址,点击配送地址后跳入选择地址页面. 下图为用户选择地址页面,用户点击选择地址选项进行选择后再点击返回按钮回到用户下单页面 此为用户选择地址后返回的下单页面.此时下单页面的“选择地址”变为了用户自己的地址,便已经是完成了页面间…
一开始以为微信小程序的语法是和VUE的语法一样的,直接@click="click(field)",结果却不是这样的 在微信小程序中我们需要设置一个 data-set ,然后在绑定的函数中访问 e.target.dataset 现在贴代码 <picker bindchange="formChange" data-field="type"> formChange(e) { console.log(e.target.dataset.fiel…
微信小程序获取用户信息诸如unionId的时候需要解密,如果遇到偶然的解密失败(填充无效,无法被移除),原因很有可能是session_key错误, 也是就你用作解密的session_key并不是微信用作加密的那个了,但是并不代表你的session_key已经失效. C#解密代码(亲测有效,可以直接复制使用) /// <summary> /// Aes解密 /// </summary> /// <param name="str">需要解密的字符串<…
微信小程序有个属性hover-class='active',是指当点击列表元素时当按下鼠标左键会显示active样式,但是鼠标离开样式就会复原.可以参考以下解决方案,直接上代码: wxml: ? 1 2 3 4 5 6 7 8 <view class="taga">  <view class="tag-title">标签</view>  <view class="tag-box">  <vie…
小程序注册完成后,加载页面,触发onLoad方法. 页面载入后触发onShow方法,显示页面. 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次. 当小程序后台运行或跳转到其他页面时,触发onHide方法. 当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法. 当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload 例如: 我们定义了一个方法: 功能是:当用户打开这个…
最近做,微信点餐小程序,遇到添加商品时出现抛物动画,参考借鉴了这位大神的方法 https://www.cnblogs.com/greengage/p/7815842.html 但出现了一个问题,连续点击加入购物车时,抛物动画报错.如图: 我的解决方法是: //购物车抛物动画 (时间间隔)(解决点击过于频繁时,抛物动画报错问题) var nowTime = new Date().getTime(); var clickTime = e.currentTarget.dataset["ctime&qu…
1.新建小程序,建立云开发快速启动模板 这里和普通小程序的区别有三点 一是 project.config.json写上云函数所在目录"cloudfunctionRoot": "cloudfunctions/", 二是 app.json写上“cloud”:true 三是 app.js 添加,用于记录访问用户 onLaunch: function () { if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力')…
本地----------------------------------------------------------------------------------------------------- // wx.login({ // success: res => { // var code = res.code; //返回code // // console.log(code) // // 小程序appid // // wxd751fc845c90fbd8 // // 3df95e16…
我们经常用到发布文章,用的是UEditor百度富文本编辑器,方便排版,存储的也是html代码,这样小程序解析出来的也是排版的样式,但是使用wxParse解析html的时候,因为存储的是图片的相对路径,所有在小程序解析的时候图片不显示,网上搜了好多,说当时图片的时候在解析出来的图片相对路径前面加上域名,这样也挺麻烦的,没到图片的地方都要判断一下,所有我找了个简单粗暴的方法,直接改wxParse的代码,只需要改这一个地方就可以了. 另外附上小程序   wxParse的使用方法 小程序 转换富文本编辑…
准备工作 1.有一台阿里云的Linux CentOS6 服务器,安装支持ssl模块的Nginx 2.有自己的域名,把域名解析到指向该服务器IP,本例中将wx.wangjiang.net 解析到服务器IP 3.为二级域名wx.wangjiang.net 申请免费的CA证书,因为小程序的业务接口不支持http协议. 服务端安装frps wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-instal…
第一次上传部署云函数时,会提示这个,建议在这之前先安装一下node.js. https://nodejs.org/en/ 下载nodejs,然后直接安装,在cmd控制台输入node -v和npm -v,这两个打印版本号的命令可以判断node和npm是否安装成功. 这时可以进行第一次上传部署云函数的操作了,如果你已经执行过了,那现在就需要手工来安装wx-server-sdk依赖了. 打开cmd控制台,进入到云函数的文件夹,然后执行: npm install --save wx-server-sdk…
使用来自不同页面的函数 函数写在util.js页面 function formatTime(date) { var year = date.getFullYear() var month = date.getMonth() + 1 var day = date.getDate() var hour = date.getHours() var minute = date.getMinutes() var second = date.getSeconds() return [year, month,…
// 商品详情页跳转函数 detailInto: function (e) { // console.log() var change = e.currentTarget.dataset.id; wx.navigateTo({ url: '../detail/detail?id=' + change }) }, //接收的页面 onLoad: function (opt) { var selectnum= this.data.selectnum; selectnum.sq = opt.key;…
// 订单生成返回数据,弹出是否支付模态 wx.showModal({ title: '微信支付', content: '确定支付吗?', success: function (res) { if (res.confirm) { self.pay(bianhao); } else if (res.cancel) { setTimeout(function () { wx.redirectTo({ url: "/pages/user/dingdan?id=2&&status=1&q…
wx:for   如果没有给它相应的  wx:key 控制台就会有警告,解决的办法给它添加相应的key警告就消失啦…
云函数中有以下未安装的依赖,如果未安装即全量上传 在新建的云函数,右击终端打开->cmd,安装依赖 npm install --production 依赖安装成功之后,文件里面会出现 package-lock.json…
云函数是运行在服务器端的 创建一个目录cloud project.config.json配置云函数目录 cloud目录有个云朵.代表云函数 初始化成功了 新建一个云函数 cloud目录右击 新建一个Node.js 函数 上传云函数 右击上传并部署 云函数调用 //云函數調用. wx.cloud.callFunction({ name: 'getData', success(res){ console.log('请求云函数成功', res) }, fail(err){ console.log('请…
ffn: function () { let nnn = this.data.nnn nnn += 1; this.setData({ nnn: nnn }); if (nnn > 10) { wx.vibrateLong() } }, var timer = setInterval(this.ffn, 1000);…
<view> <view class='btn-img'> <image class='image-full' src='../../imgs/index/tab6.png'></image> <contact-button class='section-tel' size="27" session-from="weapp"> </contact-button> </view> &l…
// 将对象的键添加到数组 var arr = Object.keys(site); //英文 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys   中文 https://developer.mozilla.org/zh-CN/   https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference…
// 购物车删除 deleteList(e) { const index = e.currentTarget.dataset.index; let carts = this.data.carts; carts.splice(index, 1); // 删除购物车列表里这个商品 this.setData({ carts: carts }); if (!carts.length) { // 如果购物车为空 this.setData({ hasList: false // 修改标识为false,显示购…
var str = 'abcadeacf'; var str1 = str.replace('a', 'o'); alert(str1);    // 打印结果: obcadeacf   var str2 = str.replace(/a/g, 'o'); alert(str2);    //打印结果: obcodeocf,…
<view class="list"> <form bindsubmit="formSubmit"> <view class="item-addr flexa" bindtap="translate"> <view>所在城市:</view> <view style='color:#666' wx:if="{{valuetext?'':true}}&qu…
yanZhengInput: function (e) { var that = this; var yanzheng = e.detail.value; var huozheng = this.data.huozheng console.log(e.detail.value) that.setData({ yanzheng: yanzheng, zhengTrue: false, }) if (yanzheng.length >= 4) { if (yanzheng == huozheng)…
//登录输入密码 userPasswordInput: function (e) { var that = this; this.setData({ userPassword: e.detail.value }) // console.log(e.detail.value.length) // console.log(e.detail.value); var value = e.detail.value var strkong = /^[0-9a-zA-Z]{0,25}$/g; if (strk…