收藏
回答

问题反馈:button的bindgetuserinfo回调触发异常

问题模块
API和组件



1.操作环境:微信web开发者工具 v0.20.191900(模拟器-iPhone 6) + Win7 64位


2.操作路径

 1)打开微信开发者工具,打开本地项目,设置有效的AppId,为了能够login和清除授权数据

 2)侧边栏-项目-选择基础库版本1.3.0清除数据、文件、授权数据,重新编译,然后切换到调试-控制台。

 3)index页面,点击“获取头像昵称按钮,弹出用户授权提示框,点击允许,控制台打印事件对象event,获取userinfo成功

 4)index页面,用户头像显示正常,点击头像跳转至log页面。

 5)log页面,开发工具中清除授权数据,再次点击页面中“获取头像昵称”按钮,弹出授权提示框,点击拒绝,控制台手动调用            wx.getUserInfo,打印“用户拒绝授权”;然后再次点击“获取头像昵称”按钮弹出授权提示框,点击允许,控制台再次手动          调用wx.getUserInfo,打印获取到的userInfo对象。

        在此期间,“获取头像昵称”按钮bindgetuserinfo回调没有被触发,所以手动调用getUserInfo观察授权结果。

   6)跳转并执行步骤2唯一区别:将基础库版本该为1.4.2以上),顺序执行步骤3、4、5

   7)执行完步骤6,会发现与步骤5的区别就是,“获取头像昵称”按钮bindgetuserinfo回调被正确的触发,控制台分别都打印            出用户允许和拒绝授权时的事件对象event。


3.问题描述:1.3.0-1.4.2(不包括1.4.2)之间的基础库,不能正确的在首页以外的页面,触发button的bindgetuserinfo回调。

但是我们所开发的小程序需要最低兼容至1.3.0版本。虽然通过按钮授权成功,即使没有触发bindgetuserinfo,可以通过wx.getUserInfo获取数据,但是用户授权成功或失败的时机是未知的

注:文中的首页app.json中pages属性,第一个数组元素对应的页面(如:page/index/index)


4.按上述操作控制台截图

基础库版本:1.3.0,步骤1~5


基础库版本:1.4.2,步骤6


5.代码片段截图

index页面由于代码较多,只截取与官方demo-quickstart有区别的部分,logs页面截取完整代码,红线为改动部分,红框为新增代码部分。

/** index.js **/

navigateTo尝试后有问题才改为redirectTo,其他跳转方式暂时未尝试。



/** logs.wxml **/


/** logs.js **/


最后一次编辑于  2017-08-11  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • Link
    Link
    2017-08-11

    问题已确认。这个问题是在 1.4.2 修复的,1.3.0 仍然存在这个问题。由于 1.4.2 只针对微信版本 6.5.10 的用户下发,所以 6.5.9 的用户仍然存在这个问题。目前统计的数据是还有 1.5% 的用户受影响,计划下周针对 6.5.9 的用户下发一个 1.3.1 的版本修复此问题。

    2017-08-11
    赞同
    回复
  • 晨
    2017-08-11

    你好,我们已复现问题。具体的解决方案会在商讨后回复你。感谢反馈。

    2017-08-11
    赞同
    回复