最近使用EChart在小程序上做图表显示功能,EChart官方有以下提示
这肯定要使用啊,支持高配我为啥要选低配呢。。。
于是乎对着自己做出来的图表越看越喜欢,虽然我也不知道使用Canvas 2d变化在哪,但是感觉就是不一样。
所有功能开发完之后,上手机测试发现简直就是完美的无懈可击。接下来就在电脑上打开了一下。。。我辛苦画出来的图她不见了。。。
为了找到我丢失的图像,我在网上一顿搜索发现微信电脑端不支持Canvas 2d,原来是微信把我的图搞丢了
几经思索之后我想大概是电脑端的微信还不认识拥有Canvas 2d渲染之后的我的图,这没办法,咱也不能打他,咱也不能骂他,他记忆力这么差也记不住我的图,只好把我的图变为了原来的样子,EChart官方给的提示,如果仍需使用旧版 Canvas,使用方法如下:
<ec-canvas id="xxx" canvas-id="xxx" ec="{{ ec }}" force-use-old-canvas="true"></ec-canvas>
果然这样运行后,电脑端的微信认出了漂亮的我的图,但是为了这个记忆力差的微信电脑端我怎么能就这样舍弃我完美的图呢。。。
微信官方API wx.getSystemInfo(Object object)
这个接口返回信息里有一个字段 platform,这个东西会告诉你微信客户端平台类型,在页面初始化的时候调用wx.getSystemInfo,当platform返回信息是"windows"时说明是在PC端调用,MAC OS系统不知道是否支持canvas 2d,如果不支持,使用wx.getSystemInfo返回platform的信息应该是"MAC",一样可以起到判断的效果。
这样就通过访问平台类型区分了是否支持canvas 2d,也希望微信电脑端能尽快支持canvas 2d,毕竟devTools都能预览,电脑端实现应该不难。