大象笔记

知者行之始,行者知之成

微信小程序真机 canvas 2d 二次重绘时,弧形进度条变形

在微信小程序中使用 canvas 绘制了一个弧形进度条。 问题现象 首次绘制时,一切正常 再次进入页面,onshow 时再次绘制,会出现右下角出现一段奇怪的曲线 但是,这个问题只在真机上能够出现,在本地开发工具上一切正常。 问题定位 这个问题困扰了我几天,一直没有找到问题出在哪里。我一度怀疑是微信小程序的 canvas 2d 有 bug 导致。但是即便使用原始的非 2d 版本实现,问题依旧。 同时,在网上查到的代码 demo,都没有提交类似的 bug。所以,问题很大概率还是出在我自己的代码这里。 我仔细观察了一下,这个诡异的右下角图形,非常像是放大版的弧形曲线的一部分。于是,我怀疑二次绘 ...

阅读全文...

微信小程序在华为手机上不断刷新并闪屏

在真机调试微信小程序时,发现一部华为手机每隔几秒钟就转圈一次。 说明触发了 onShow 中的 http 请求,打卡 vConsole 查看,可以看到,不断在循环重复: page onshow have been invoked app onHide have been invoked app onShow have been invoked page onShow have been invoked 但是在其他手机,包括其他华为手机上也没有出现这个问题。 只能猜测是这部手机进行了 Root 并安装远程控制软件导致的问题。 即便打开其他小程序或者 app,也是每隔几秒钟就刷新一次界面。 ...

阅读全文...

微信小程序同时授权获得用户手机号和昵称、头像

能否点击一次弹出两个授权窗口 官方说不能。 但是论坛里看到说,可以试试 button 里嵌 button。测试一下: 测试了一下,嵌套 button 行不通。无论谁嵌套谁,都只能弹出手机那个授权窗口。 连续点击两次,弹出两个授权窗口 如果只能采用点击两次的策略,可以加个 wx if 判断,当点击完一个按钮后,显示另一个授权按钮。 但是体验非常不好。 相对好的体验 我看一个小程序做的就比较巧妙。 点击微信登录,授权获取手机号。 然后,弹出用户协议,点击同意,获取用户头像和昵称等信息。 实际上,第一步已经完成了注册,第二步只是来补充信息。 如何做才能体验更好 我觉得获取用户头像和昵称,并非刚需 ...

阅读全文...

用户并不关心产品本身有多棒,而是关心使用产品后自己有多棒

又一本刷步数时读完的书,《用户思维+:好产品让用户为自己尖叫》。这本书提出了一个我从来没意识到的一个观点: 用户并不关心产品本身有多棒,而是关心使用产品后自己有多棒。 这个观点非常新颖,而且一下子震住了我,甚至让我无比佩服。怎么能把用户心理观察的这么细致! 然而,当我想以此观点为理论依据,在自己新开发的“报名人数统计”微信小程序里增加点可以让用户实现自我成长,自我感觉棒棒的功能时。我茫然了。。。突然觉得不知如何是好。 做产品的出发点到底是什么? 真的是为了让用户为自己尖叫?帮助用户成长么? 至少我觉得不是。 还是以“报名人数统计”小程序为例,做这个产品的原因是: 我网站有些关于人数统计需 ...

阅读全文...

微信小程序: canvas 2d 接口支持同层渲染且性能更佳,建议切换使用

在使用微信小程序的 canvas demo 代码绘制了一个矩形之后,发现小程序开发工具的 console 中有警告提示: canvas 2d 接口支持同层渲染且性能更佳,建议切换使用。详见文档: https://developers.weixin.qq.com/miniprogram/dev/component/canvas.html#Canvas-2D-%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81 文档里说,基础库 2.9.0 起支持一套新 Canvas 2D 接口(需指定 type 属性),同时支持同层渲染,原有接口不再维护。 是否有必要使用 canvas ...

阅读全文...

一天刷一万步对我来说有点难

起初刷步数是为了减肥,还特意买了小米手环5用来监督每日的步数完成情况。目前,定下的每日目标是1万步,但是一个月下来发现一周也就三四天能达标。日均步数也就 8800 步,不到九千步。 某个周天晚上,看了雷军在抖音上的带货直播,得知雷教主每天的目标是1万4千步,大约相当于十公里。起初我很疑惑,这么忙的人,一天怎么可能刷14k的步数,对于我这需要大概两个小时。一天抽出两个小时来走路,这不太现实吧。。。 但是,这之后,我特意统计了一下,发现每天一万四千步,对于程序员的我来说,还是可实现的。刻意刷了一个周,总结了一下经验。 一天如何稳定刷足一万步 走路上下班,大概四千步。完成 40%。 中午吃完午饭 ...

阅读全文...

vim 保存当前打开文件窗口,下次自动打开

这段时间在写微信小程序界面,大量的可复用布局代码可以整理成 vim snippet,所以,基本是写一会代码,整理一会 snippet,开发效率确实大大提高。 但是 vim snippet 没法自动加载,新增的 snippet 无法自动生效,每次都需要重新打开 vim 才能使用新增的 snippet,有点繁琐。特别是同时打开了 N 个代码文件。 如果重启 vim 后,能自动打开之前的文件就方便多了。 使用 vim session 保存当前打开的文件列表,及窗口布局 Google 了一下,发现可以使用 vim session 来实现这个效果。 针对当前打开文件,创建 session。例如,我想将 ...

阅读全文...

微信小程序重置按钮的样式

有时候需要通过微信小程序 button 设置 open type 来获取用户的信息。这时候就不能用 view 来实现,必须使用 button。 但是 button 默认带了样式,需要将默认样式清除掉。 可以在定义一个 reset_btn 的样式来重置 button 的样式。 代码示例 .reset_btn { margin:0; padding:0; border-radius:0; border:none; font-size:1em; background-color:transparent; } .reset_btn::after{ border: none; } 若 ...

阅读全文...

重来3:跳出疯狂的忙碌

重来系列是我的必读书目,非常适合作为放松阅读之用。这次迎来了该系列的第三部《重来3:跳出疯狂的忙碌》,我是这周午饭后去公司楼下刷步数减肥时,边走边翻完的这本小册子。微信阅读上有这本书。 作者主要观点是反对加班,反对公司规模的盲目扩张。我觉得这是是个人就明白的道理。。。之所以还要996,其实也是不得已而为之。并不是所有公司都能像作者的公司 37signals 一样有先发优势。但是还是有不少观点非常有趣。这里记录一下: 你的公司是个产品 本书的一切观点都围绕着这个主题延展开来。就像产品需要不断改良一样,公司也需要迭代才能不断进步。如果你想把一个产品做得更好,就必须不断地测试、修改、迭代。做公司也 ...

阅读全文...

微信小程序使用 wxs 对模板数据格式化展示

需求场景 在小程序页面展示时,对时间、金额进行格式化处理。但是每次在 js 文件中处理,并 setData 感觉无比麻烦。是否可以直接在 wxml 模板文件中进行处理。正好发现了微信小程序 wxs,完全满足需求。 微信小程序 wxs 使用场景 WXS(WeiXin Script)是微信创造的一套脚本语言,虽然看起来很 JS 异常相似,但是官方说法是: “WXS 与 JavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致”。 作为模板变量filter不错,随模板打包带走挺好用 WXS 特点: 在视图层(webview)中运行的 JS 可以监听 touch 事件 ...

阅读全文...

微信小程序获取经纬度对应的地理位置名称

为了方便用户在小程序页面中一目了然的知道自己当前位置,需要将获取到的经纬度转换成可读的位置描述。例如:烟台市开发区万科城。 位置信息 API 选型 高德地图接口 https://lbs.amap.com/api/webservice/guide/api/georegeo/ 腾讯地图 https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview API 接口调用配额 腾讯地图个人版每天1万次;企业版未知 高德地图企业版 300 万次/天 高德地图 API 示例 wx.getLocation({ type: 'gcj02 ...

阅读全文...

微信小程序获取用户当前位置的坐标经纬度

背景 在获取与地理位置相关的数据时,需要传递用户当前位置的坐标。 api https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html 使用微信小程序位置 API 的注意事项 wx.getLocation 需要授权 scope.userLocation,并且必须在 app.json 中配置地理位置用途说明。例如, "permission": { "scope.userLocation": { "desc": &qu ...

阅读全文...

近期节日

2020年10月25日 重阳节
2020年10月31日 世界勤俭日
2020年11月01日 万圣节
2020年11月07日 立冬
2020年11月08日 中国记者日
2020年11月10日 世界青年节
2020年11月11日 光棍节
2020年11月14日 世界糖尿病日
2020年11月17日 国际大学生节
2020年11月20日 国际儿童日
2020年11月21日 世界问候日
2020年11月22日 小雪
查看更多节日