自定义菜单事件推送
用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。请注意,第3个到第8个的所有事件,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。
目录
4 scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框的事件推送
6 pic_photo_or_album:弹出拍照或者相册发图的事件推送
用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。请注意,第3个到第8个的所有事件,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。
目录
4 scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框的事件推送
6 pic_photo_or_album:弹出拍照或者相册发图的事件推送
(2018-09-07)为了优化用户的使用体验,平台将回收“使用 wx.getUserInfo 接口直接弹出授权框”以及“使用 wx.authorize 接口直接申请提前授权用户信息”的能力,开发者需要使用组件方式唤起登录授权弹窗。
2018年10月10日后发布新版本的小程序,将无法在线上版本中使用接口直接弹出授权框。开发者可结合平台设计建议,提前做好兼容,合理使用微信登录能力。
WePY 是 腾讯 参考了Vue 等框架对原生小程序进行再次封装的框架,更贴近于 MVVM 架构模式, 并支持ES6/7的一些新特性。
npm
进行:
0 1 2 3 4 5 6 |
npm install -g wepy-cli //全局安装或更新WePY命令行工具(wepy脚手架): wepy-cli wepy -v //查看wepy-cli版本 wepy init standard <projectName> //新建wepy小程序项目,1.7.0之前的版本使用:wepy new myproject wepy list //查看项目模板 cd <projectName> //切换至项目目录 npm install //安装依赖 wepy build --watch //开启实时编译 |
git base here: Continue reading
微信小程序向原数组添加元素,微信小程序向原数组追加元素
data 是回调返回的数据
formatTimeTwo() 把时间戳转为格式化日期时间
list 是 this.data.list
concat() 合并覆盖this.data.list原有数组元素 Continue reading
wx:for,wx:for-item,wx:for-index
1.定义
通俗来说,
wx:for 这个是正常的循环,没什么可说的。
wx:for-item=‘变量名(随便起的)’ 它是指定循环数据当前的变量名,可以通过 {{变量名.属性}} 展示数组的元素。
wx:for-index=‘变量名(随便起)’,它是指向当前元素的下标名,可以在其他事件中定义自定义事件(data-xxx=’{{变量名}}’,,该自定义属性可以在参数e下面打印出来)获取该下标。 Continue reading
小程序警告 Now you can provide attr “wx:key” for a “wx:for” to improve performance.
首先,要说这是一个警告,不影响脚本正常运行。
但是,做为我个人的性格来讲,这是不允许的。如果页面多,用了很多的wx:for,那么这种提示在控制台窗口提示就会提示好几米高。就算只有一个提示,那么我们做这个的,应该要严谨,不允许一点点的警告。 Continue reading
0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
js页面 //创建节点选择器 var query = wx.createSelectorQuery(); //选择id var that = this; query.select('.every').boundingClientRect(function (rect) { // console.log(rect.width) that.setData({ height: rect.width + 'px' }) }).exec(); wxml页面 <view class='every' style='height:{{height}}'></view> |
微信小程序报错:小程序使用wx.navigateTo()接口,由页面A跳转到页面B时,跳转失败,报文是navigateTo:fail can not navigateTo a tabbar page
原因是B页面已经加入到app.json中的tabBar项做为标签页了。
两种解决办法:
一、删除app.json中的tabBar项下的B页面,即B页面不能做为标签页面;
二、另建一个不加入app.json中tabBar项下的页面。
使用getCurrentPages可以获取当前加载中所有的页面对象的一个数组,数组最后一个就是当前页面。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
var pages = getCurrentPages() //获取加载的页面 var currentPage = pages[pages.length - 1] //获取当前页面的对象 var url = currentPage.route //当前页面url var options = currentPage.options //如果要获取url中所带的参数可以查看options 可以写成工具函数放到utils中: /*获取当前页url*/ function getCurrentPageUrl() { var pages = getCurrentPages() //获取加载的页面 var currentPage = pages[pages.length - 1] //获取当前页面的对象 var url = currentPage.route //当前页面url return url } /*获取当前页带参数的url*/ function getCurrentPageUrlWithArgs() { var pages = getCurrentPages() //获取加载的页面 var currentPage = pages[pages.length - 1] //获取当前页面的对象 var url = currentPage.route //当前页面url var options = currentPage.options //如果要获取url中所带的参数可以查看options //拼接url的参数 var urlWithArgs = url + '?' for (var key in options) { var value = options[key] urlWithArgs += key + '=' + value + '&' } urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1) return urlWithArgs } module.exports = { getCurrentPageUrl: getCurrentPageUrl, getCurrentPageUrlWithArgs: getCurrentPageUrlWithArgs } |