确实挺迷惑的,不知道同时设置两个类型,优先级哪个高
wx.chooseImage 的sizeType 用法问题?wx.chooseImage 官方的文档说明是:默认值:['original', 'compressed'], 所选图片的尺寸 返回的:tempFilePaths:图片的本地临时文件路径列表 (本地路径) 我的理解应该是:如果sizeType为:['original', 'compressed'] 时,那 tempFilePaths 就应该是返回 2个路径才对,一个是原图的路径,一个是压缩图的路径,但实际上只返回了一个路径,那请问,这个返回的路径是原图的,还是压缩图的?
2021-09-18给你一个思路,全局App 定时刷新 消息,数量变化的时候,发送广播。所有tab页面 onLoad 时候 监听广播,onUnload 取消监听 // 注意:所有tab页面都需要绑定和解绑消息模块 // 说明:为何不全局app控制底部tab消息数量显示?因为当前页面非tab,操作底部数字显示会报错 // onLoad: message.addNotification() // onUnload: message.removeNotification() import { getMessagerList } from '../api/message.js' const wxNotificationCenter = require('../utils/WxNotificationCenter.js') const login = require('../utils/login.js') let lastUnReadMessagerNum = 0 // 加载消息 const loadMsg = () => { if (login.isLogin()) { getMessagerList({ }).then((res) => { // 获取第一条消息 let data = res.data if (!data) { return } // 统计未读消息数量 let unReadMessagerNum = 0; data.forEach(item => { if (item.isRead != true) { unReadMessagerNum++; } }); if (lastUnReadMessagerNum != unReadMessagerNum) { if (unReadMessagerNum) { wx.setTabBarBadge({ index: 3, text: unReadMessagerNum + "", }) } else { wx.removeTabBarBadge({ index: 3 }) } // 触发广播 wxNotificationCenter.postNotificationName('messageChange', 3) } }); } } // 绑定广播监听 const addNotification = (moreFun) => { wxNotificationCenter.addNotification('messageChange', (unReadMessagerNum) => { if (unReadMessagerNum) { wx.setTabBarBadge({ index: 3, text: unReadMessagerNum + "", }) } else { wx.removeTabBarBadge({ index: 3 }) } lastUnReadMessagerNum = unReadMessagerNum if (moreFun) { moreFun(unReadMessagerNum) } }, this) } // 解绑广播监听 const removeNotification = () => { wxNotificationCenter.removeNotification('messageChange') } module.exports = { loadMsg: loadMsg, addNotification: addNotification, removeNotification: removeNotification }
wx.setTabBarBadger报错在当前页为非tabbar页面时 调用wx.setTabBarBadge和wx.removeTabBarBadge会报错. 这是BUG还是就是这么设计的? 如果就这么设计的, 那么就不能通过worker线程来定时刷新TabBar状态了, 感觉这API就有点鸡肋了
2021-08-26 // 开启罗盘监听获取方向 getRotate() { let vm = this let platform = wx.getSystemInfoSync()['platform'] // 开启罗盘监听 wx.startCompass({ success() { wx.onCompassChange((res) => { let rotate = 360 - res.direction.toFixed(0) if (platform == 'ios') { vm.setData({ rotate: rotate }) } else if (platform == "android") { // 细小角度偏差不修改,防止android无故抽搐 if (Math.abs(rotate - vm.data.lastRotate) < 5) { if (rotate != vm.data.lastRotate) { vm.setData({ lastRotate: rotate }) } return } vm.setData({ lastRotate: rotate }) clearTimeout(vm.rotateTimer) vm.rotateTimer = setTimeout(() => { vm.setData({ rotate: rotate }) }, 200) } }) } }) },
安卓机map的rotatehttps://developers.weixin.qq.com/miniprogram/dev/component/map.html 安卓机map的rotate频繁变动会导致卡顿。 在界面用按钮,点击按钮会0~360之间随机,然后this.setDate({"roate":0~360的随机数});多次点击,地图的旋转动画会逐次旋转到相应的值,一直到最后一次点击按钮的随机角度值。iOS则不会逐次旋转,而是直接旋转到最后一次点击按钮的角度
2021-05-28