- 为什么很多版本的调试基础库都不支持canvasContext,导致无法生成海报呢?
我的两部手机,一部是华为P9(基础库2.13.0),一部是小米Max2(基础库2.8.3),真机调试时发现都无法生成海报,仔细排查发现是wx.canIUse('canvasContext.draw') )为false。我用模拟器能生成海报,因为wx.canIUse('canvasContext.draw') )为true,看了下模拟器的调试基础库为2.0.4。但是把模拟器的调试基础库改为和手机一样的基础库版本(2.13.0或2.8.3),wx.canIUse('canvasContext.draw') )也就变成false,导致不能生成海报了。 请问官方,为什么很多基础库都不支持canvasContext呢?这种情况,我怎么用真机调试呢? 谢谢!
2020-09-23 - 真机上wx.canIUse('canvasContext.draw')为false的原因是什么?
想生成一张海报,在模拟器上一切正常,但真机上怎么也不行,排查了半天,发现wx.canIUse('canvasContext.draw')在模拟器上是true,在真机上是false。请问是为什么?开发者工具是1.03.2009140。手机华为P9(微信版本7.0.19)和小米Max2(微信版本7.0.6)都不行。 请各位老师多帮忙,谢谢!
2020-09-22 - 真机setStorageSync当时可以存储,退出小程序,再次进入确获取不到?
真机setStorageSync当时可以存储,一切正常,但退出小程序,再次真机调试时,却发现用getStorageSync根本取不到上次存的值。难道真机的setStorageSync在小程序退出后就被自动清除了?顺便说一下,模拟器一切正常,即使退出,setStorageSync的值下次还能正常取出来。请各位老师帮帮忙,谢谢!
2020-09-22 - 为什么websocket在模拟器上可以连接,真机上连不上?
服务器是tomcat,协议是wss,模拟器可以正常连接websocket,在真机上却不行,通过log发现,服务器可以接受手机发过来的message,但手机无法接受从服务器发过来的message(经过很多次试验,发现也不是百分百接受不到,可能运气好的话,几十次能成功接受到一次从服务器发过来的message)。顺便说一下,网络环境是非常稳定的,肯定不是网络不稳造成的。请问为什么真机上会出现这种现象呢?谢谢!
2020-09-22 - 请问使用open-data显示头像和昵称之前,还需要判断当前微信版本是否支持open-data吗?
我看网上一般都直接调用以下代码显示头像和昵称,想请教一下,在用open-data之前还需要用canIUse判断一下用户当前微信版本是否支持open-data吗? 还是说不判断也可以,不支持的版本自动忽略open-data标签了。 请老师们指教,谢谢! <open-data type='userAvatarUrl' class="userinfo" mode="cover"></open-data> <open-data type="userNickName" ></open-data>
2020-09-18 - 这样获取openid是否存在问题呢?
看官方的例子,获取openid是在app.js的onLaunch里,通过wx.login得到code,然后用开发者服务器进行请求,最终换取到openid,然后把openid保存在globalData.openid里面,方便其他页面直接使用。大概的代码就像下面,网上一般也都这么写的。 但仔细一想,因为换取openid的处理是异步处理,所以很可能其他页面里使用globalData.openid时,openid还没有从服务器返回呢,也就是此时它的值是空。 可是为什么网上都是如下的写法呢,微信官方的例子也是建议在app.js的onLaunch里面的wx.login中用code换取openid,感觉挺奇怪的,大家为什么都不怎么考虑异步问题呢?还是我哪里理解错了。谢谢! // 登录 wx.login({ success: res => { // ------ 获取凭证 ------ var code = res.code; if (code) { // console.log('获取用户登录凭证:' + code); // ------ 发送凭证 ------ wx.request({ url: '后台通过获取前端传的code返回openid的接口地址', data: { code: code }, method: 'POST', header: { 'content-type': 'application/json' }, success: function (res) { if (res.statusCode == 200) { // console.log("获取到的openid为:" + res.data) that.globalData.openid = res.data wx.setStorageSync('openid', res.data) } else { console.log(res.errMsg) } }, }) } else { console.log('获取用户登录失败:' + res.errMsg); } } })
2020-09-14 - 想请教一下关于wx.login和用户信息授权的问题,是我的理解不对吗?
看官方说明,wx.login不需要任何授权就可以直接调用,然后可以用code换取openid。 比如小程序提供用户可以查询自己历史使用记录功能,一个老用户进入小程序后,因为openid已经在上面获取到了,也就明确此时是哪个用户了,那么开发者服务器自然可以根据这个openid让这名用户查询自己的历史记录对吧? 那么问题来了,可能存在这样的场景,就是某些时候,需要用户点击 open-type="getUserInfo"的button获取授权来获得用户昵称或头像(给用户的感觉就是类似于登陆的感觉对吧)。这时用户可能会觉得很奇怪啊,自己都能顺利查询自己的历史使用记录了,说明自己已经登陆过了,系统也知道自己是谁了,怎么还要让我登陆授权呢。。。。 请问各位老师,这种情况是我自己多虑了,还是确实有可能让用户产生误解呢?谢谢!
2020-09-14