微信小程序

分类下相关文章

非经营性互联网信息服务备案核准

今天提交微信小程序审核时,显示版本审核未通过。拒绝理由是: 你好,你的小程序涉及提供用户自行生成内容的发布/分享/交流服务,请补充选择:社交-社区/论坛类目。 社交-社区/论坛类目需要什么资质 按照官方给出的引导文档: https://developers.weixin.qq.com/community/develop/doc/000a46b64e00a8aaa8a95bf3456809 可以看到,“非经营性互联网信息服务备案核准” 是社交-社区/论坛类目所需资质。毕竟我们不是政府主体。 非经营性互联网信息服务备案核准 参考 https://developers.weixin.qq.co ...

阅读全文...

微信小程序苹果手机 iOS 系统下 new Date 返回 NaN

问题现象 苹果 iOS 系统下,微信小程序中使用 new Date 解析的日期时间数据返回 Date: null。但是在 android 系统下一切正常。 网上查了一下,需要将日期中的横杠替换为斜杠。 let t = "2020-09-22 11:56" let date = new Date(t.replace(/-/g, '/')); 如此,iOS 上就显示正常了。 WXS 没有此问题 这个问题非常诡异,因为我解析日期时间功能实际上用了很久,从来没有出现个问题。但是为何今天才出现。我检查了一下发现,之前的日期时间解析都在 WXS 脚本中进行的,使用是微信封装的 get ...

阅读全文...

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

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

阅读全文...

微信小程序 android 上的 font-weight 加粗效果不明显

从蓝湖上复制的 font-weight: 400 字体样式,非常奇怪,在 iOS 上显示正常,但是 android 上毫无效果。 但是改成 font-weigth: bold 就能看出效果了,可是有点过粗了。。。 在官方论坛上找到了解释: https://developers.weixin.qq.com/community/develop/doc/000686a28a00a05646d71125251000 原来是 android 上没有对应字体的粗体。 这么看苹果贵真是有贵的道理。 ...

阅读全文...

微信小程序设置部分 http 请求不出现转圈提示

例如,小程序底部 tabbar 的几个主页面。如果来回切换时,都在 onShow 中进行了 http api 请求,每次都弹出等待中的转圈效果,会显得界面很卡。 不如,将这些 onShow 的中的请求设置不出现加载动画。 对微信小程序 wx.request 的封装优化 增加一个 showLoading 的参数,默认显示加载提示,当设置为 false 时,不显示。 if (showLoading) { wx.showLoading({title:'请求中...'}); } if (showLoading) { wx.hideLoading(); } ...

阅读全文...

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

在真机调试微信小程序时,发现一部华为手机每隔几秒钟就转圈一次。 说明触发了 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 ...

阅读全文...

微信小程序 canvas 基础使用

按照微信小程序文档中的 canvas 使用 demo: https://developers.weixin.qq.com/miniprogram/dev/component/canvas.html 写了个 hello world 测试: 模板文件 <canvas style="width: 300px; height: 200px;" canvas-id="demo"></canvas> JS 文件 onReady 中执行: var context = wx.createCanvasContext('demo') contex ...

阅读全文...

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

有时候需要通过微信小程序 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; } 若 ...

阅读全文...

微信小程序图片加载失败显示默认图片的方法

由于历史数据迁移的问题,后台一些图片链接失效,或者无效。在微信小程序中,无效的图片链接会显示空白,非常影响体验。 此时,可以使用 image 组件的 binderror 来处理,替换为一张默认图片。 binderror 使用示例 wxml 模板中不要忘了加上 data index 来传递下标 <image wx:for="{{avatars}}" wx:for-index="index" wx:for-item="avatar" src="{{avatar}}" binderr ...

阅读全文...

微信小程序给上级页面返回数据

例如,我在微信小程序首页点击选择城市按钮,跳转到新目录页面进行城市选择,然后返回首页。 这里就涉及到一个问题,选择了城市之后,怎么把选择结果返回给上一页。 getCurrentPages getCurrentPages() 获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。 详细文档参考: https://developers.weixin.qq.com/miniprogram/dev/reference/api/getCurrentPages.html 代码示例 goBack: function(data) { let pages = getCurrentPages(); ...

阅读全文...

微信小程序设置 root font size 来影响 rem 字体大小

我习惯用 rem 来设置小程序界面中的字体大小。但是默认的 16px 字号,在文字偏多的界面中,显得有点大。如果需要修改默认的 root font size,可以使用微信小程序的 page meta 中的 root-font-size 来设置。 参考官方文档: https://developers.weixin.qq.com/miniprogram/dev/component/page-meta.html root-font-size: 页面的根字体大小,页面中的所有 rem 单位,将使用这个字体大小作为参考值,即 1rem 等于这个字体大小;自小程序版本 2.11.0 起,也可以设置为 s ...

阅读全文...

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

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

阅读全文...

微信小程序日历组件

在小程序里做打卡记录功能时,发现了一个不错的日历组件: https://github.com/treadpit/wx_calendar 虽然很好用,效果也不错。但是文档有点简单,好多细节没有覆盖到。这里记录一下。 cannot read property 'setDateStyle' of undefined 偶发性错误。大概三分之一的概率会出现。 在小程序页面 onShow 里的 http 回调中,执行 this.calendar.setDateStyle(toSet); 报错。 cannot read property 'setDateStyle' of undefined 问题原因 ...

阅读全文...