这是我在写小程序过程中遇到的一些问题和经验,其中一些问题经常让人花很多时间去 debug,其中一些小经验用了很多时间才领悟得到,所以汇总在这里备忘。
"navigationStyle": "custom"
无效,所以自定义的菜单栏(或者叫导航栏)都位于胶囊按钮下方的位置,但手机端会和胶囊按钮位于同一水平;windowHeight
包括了 tabbar 的高度;wx.chooseMedia
选择图片,取消选择时,手机端会报错提示 cancel
,但电脑端无 cancel
字样,即无法根据报错信息判断是否为用户取消选择;wx.chooseMedia
选择非原图时,图片可能会被压缩得过于模糊,所以安卓端建议开启原图选项,再使用 wx.compressImage
压缩图片;wx.chooseMedia
即使仅仅开启 compressed
选项,选择的图片依然是原图;wx.compressImage
时不支持 compressedWidth
、 compressedHeight
这两个参数,即修改图片尺寸;wx.previewImage()
以 tempFilePath
预览本地图片时,会无法显示,因为电脑端本地图片的 tempFilePath
是 wxfile://
开头,不是 http://
开头;wxacommentplugin
;canvas.createImage()
时,可能会失败;new Date().toLocaleDateString()
,会被单纯地理解成 toString()
;ctx.scale()
和 ctx.rotate()
之后,最好习惯性地恢复远原样,ctx.save()
和 ctx.restore()
;base64url
;wx.login()
;wx.login()
一天的调用总次数不多于该小程序 pv 的两倍;background: linear-gradient()
在 @media (prefers-color-scheme: dark)
中不会生效,可以用 style
属性根据 theme
赋予不同的值;hover-class
需要放在 class
之后,在 wxss
文件中也要写在对应的 class
之后,如果 hover-class
的样式写在一个单独的 wxss
文件中,页面的 wxss
应该在最后 @import
这个单独的 wxss
文件;<picker-view />
组件的蒙层在深色主题下显示有点丑,所以我喜欢隐藏这个蒙层,方法是给 picker-view
增加 mask-class
属性,然后其样式使用 background-image: none;
,然后 indicator-class
增加一个背景色,同时把 z-index
设为 0;