如何获知手机正在使用的客户端基础库版本?如何升级基础库版本?
发布于 6 年前 作者 yanyan 7350 次浏览 来自 问答

https://mp.weixin.qq.com/debug/wxadoc/dev/api/systeminfo.html

文档里说 wx.getSystemInfo() 可以查看 SDKVersion(客户端基础库版本),但要求本身正在使用的是 1.1.0 以上版本才能看到。

我在手机里调用这个接口得到的结果如下:

那么问题来了,我手机里现在的基础库版本到底是多少呢?

没看到 SDKVersion,似乎应该说明版本是在 1.1.0 以前,但是却能看到 screenWidth/screenHeight,这个同样也是 1.1.0 版本才开始有的呀。

接下来的问题是,这个基础库的版本是怎么升级的?有没有什么方式可以让我选择采用哪个版本(对于测试很重要)?还是只能凭运气等灰度?

10 回复

类似这次基础库1.2.0要在公开版6.5.8以上才能使用,这样推吧;其实不明白楼主想干嘛,如果是担心接口不兼容就进行兼容处理不就行了嘛?

对了,我记得SDKVersion这个属性是能拿到了,在调试一下看看呗

wx.getSystemInfo()使用这个方法,在开发工具里面获取的是开发工具的基础库版本,在真机测试时,获取的是当前真机的基础库版本。如果没有SDKVersion,建议你多找几台测试机,进行多次测试。个人目前认为是基础库版本过低,没有获取到SDKVersion字段。所以测试真机的基础库版本可能是低于1.1.0的。你可以判断有没有该key(SDKVersion),没有的话,友好的提示一下用户即可。

楼主的这股认真负责的劲确实值得学习;按你的需求来说的话,现在没办法回答你,我也没记录哪个版本对应哪个基础库,不过楼主根据微信版本更新时间和小程序基础库更新时间进行对比应该可以找到对应的版本号。

@新新新丶: 请问,哪里能找到【不同基础库对应的微信公开版本】?

@新新新丶: 这么说吧,我要针对所有已知的基础库版本(1.0.0/1.0.1/1.1.0/1.1.1/1.2.1/1.2.2)对小程序做严格的兼容性测试,于是我准备了 6 部安卓手机和 6 部苹果手机,那么,我应该分别安装什么版本的微信才能达到我的测试目的呢?

我知道程序里应该做【兼容性处理】,但处理得是否正确、是否足够,需要【兼容性测试】来验证。

谢谢 @无色,你的解释我能理解。基础库的每个版本、每个版本的接口支持情况、每个版本跟微信版本的相关性,这些应该都是有严格明确的定义的,我相信微信官方自己一定是有一套清晰文档的,只是希望官方能够把这份文档公开出来,便于开发者安排自己的开发、测试工作。

额额,这方法确实欠缺考虑。

你的想法也没什么不好,但我个人认为基础库主要还是方便开发者开发调试使用,而且微信方面也提供了兼容方法。

具体还是看你的业务需求吧。

@新新新丶: 多谢回复。靠把基础库更新时间跟微信版本更新时间做比对来确定版本间的对应关系,这个对于普通开发者而言是低效的且不可靠的。而且,微信本身似乎也没有提供选择性安装旧版本的渠道。

况且,通过其他侧面了解到的信息来看,有可能这个基础库版本跟微信的发布版本之间并不是确定的对应关系,基础库有可能是单独动态更新的,具体的更新工作很可能受官方的灰度发布策略来控制。

所以,官方应该出来把基础库的更新机制说清楚,进一步,如果可能的话,应该提供基础库版本的选择性更新。

其实开发文档说明上的基础库版本主要是用于我们开发调试,一般只需要关注微信公开版本;要测试手机微信基础库版本的话就下载不同基础库对应的微信公开版本吧,印象中微信app没有选择基础库的功能。

回到顶部