一个与微信小程序BUG魔孤军奋战了若干年最终败下阵来的程序狗!
发布于 7 年前 作者 qiangyin 12690 次浏览 来自 官方Issues

在说正题之前我必须吐槽几句!

做小程序开发就是越战越勇!越挫越勇的过程!!

作为在百度、CSDN干了20年工作经历的老程序员,微信小程序一推出就直接进入。

7天7夜没睡上了第一个微信小程序 《今日汇率》大家搜一下,坐等流量导入。

而噩梦刚刚开始!自己搜索汇率排名第一的位置突然一天没了,一看被官方APP占领。

紧接着告诉我,公司没有资质不能做汇率类微信小程序。然后不能提交更新,必须更名,程序报废。夜白熬了。前前后后花了我几万大洋一毛钱没赚到,小程序直接给我废了。

我想说作为一个个人程序员很辛苦的!微信团队能不能给口饭吃!

下面开始说BUG!

突然有一天配置页开始支持navigationStyle的custom属性,

据说是

全局配置       navigationStyle custom      微信客户端 6.6.0     以上支持

页面配置       navigationStyle  custom      微信客户端 7.0.0     以上支持

而实际上,同样版本的微信在不同的型号的真机上都不一定支持。简直跟见鬼了一样,我只能一个机器一个机器测。我测的时候在想,你们微信团队把我弄走算了,你们能不能有点工匠精神。

navigationStyle  custom并存的是 wx.getMenuButtonBoundingClientRect(),导航条个性化定制了如果要放按钮就要明确获得右侧胶囊按钮的尺寸,

而这个函数wx.getMenuButtonBoundingClientRect()至关重要,可是事实上它并不准确。在同一种机型不同的微信版本参数都不一样!

这是官方参数列表,其中TOP有时候是胶囊按钮到屏幕顶端的距离,有时候TOP是胶囊按钮到顶部状态栏的距离,有时候等于0。

HEIGHT值有时候是胶囊按钮高度,有时候竟然是屏幕顶部到胶囊按钮底部的高度。

同样版本的微信在IOS和ANDROID下有不同表现,让我一度怀疑小程序 安卓版 与 IOS版不是一个团队开发的。

能不能认真的,测试团队跟上!KPI跟上!

直到今日,我以为wx.getMenuButtonBoundingClientRect()取值不准的问题,在我测试的大部分机型中和不同SDK和不同微信型号中所存在的问题我都测到了,而就在今天当我拿起朋友的手机时!瞬间泪奔!!!!!

都已经过去多少年了微信什么这个BUG还在那!!!!

下面就是打印了wx.getMenuButtonBoundingClientRect(),都微信7.0.0了,LEFT等于0,TOP也是等于0.

这BUG想弄一辈子吗?

希望微信团队能准确回答我一下每个问题。如果不能回答我猜测你们没好好测!!!!

1、wx.getMenuButtonBoundingClientRect() 函数能使用,但返回参数中TOP等于0的微信客户端版本和SDK版本分别是多少?

2、wx.getMenuButtonBoundingClientRect() 函数能使用,但返回参数中HEIGHT等于胶囊按钮底部到手机屏幕顶部的高度的微信客户端版本和SDK版本分别是多少?

3、wx.canIUse(‘getMenuButtonBoundingClientRect’) 这样方法来判断是否有用,而在实际操作中这样的方法返回FALSE,而直接调用wx.getMenuButtonBoundingClientRect()函数却又能用,请问这种情况得微信客户端版本与SDK版本分别是多少?

请团队尽快解决吧,不然多少用户看不见导航菜单懵逼的样子!你们想想吧,损失的都是用户,用户可是等于人民币的!!!!!

10 回复

我中午也刚吐槽完,一个月前我的小程序还是排名第一,从昨天开始自然流量基本没了。

关于小程序的名称和搜索,谁能整明白?

1、在新的客户端版本已经解决了,麻烦更新客户端版本试下,

2、7.0.5客户端修复了

3、api测试可用,

或是通过typeof检测下

可想过去把这些BUG改改完了!!!不要钱!免费的。本人IOS ANDROID ,C 汇编 底层原理都会

老哥,敢问今年贵庚~

暴躁老哥在线怼人

先熟悉运营规范再做小程序才是正常顺序。

wx.getMenuButtonBoundingClientRect()

在ios端第一次获取OK,跳转其他页面再次获取返回的全是 0

我的做法是第一次获取到就把这个存到global里

let capsule = app.globalData.capsule || wx.getMenuButtonBoundingClientRect()

console.log(capsule)

if (app.globalData.capsule === null) {

app.globalData.capsule = capsule

}

回到顶部