微信小游戏持续更新了24个版本-好友排行、授权兼容、软著一一攻破

先上二维码,欢迎各位来提bug.

如下:

好友排行:关系链数据的问题我就不多说了,之前在本论坛也和各位大佬讨论过了,很蛋疼,但是最终都解决了。

授权兼容:微信官方最新新增了一个授权按钮,所以兼容新老版本就很头大,还好,经过我几天的奋斗、测试、排查,基本也解决了。这里我要放一个代码,分享一下我的解决方法:

`>

getUserInfo(left,bottom) {
    return new Promise((resolve, reject) => {
      let sysInfo = wx.getSystemInfoSync();
      let sdkVersion = sysInfo.SDKVersion;
      //sdkVersion = sdkVersion.replace(/\./g, "");
      //sdkVersion = sdkVersion.substr(0, 3);
      //let sdkVersionNum = parseInt(sdkVersion);
      //console.log("platform获取用户授权:", sdkVersionNum);
      //if (sdkVersionNum >= 201) {
      if (sdkVersion >= "2.0.1") {
        var button = wx.createUserInfoButton({
          type: 'image',
          text: '微信授权',
          image: "resource/assets_game/main/button_wx_getuserinfo.png",
          style: {
            left: left,
            bottom: bottom,
            width: 183,
            height: 62,
            lineHeight: 40,
            backgroundColor: '#ff0000',
            color: '#ffffff',
            textAlign: 'center',
            fontSize: 16,
            borderRadius: 4
          }
        });
        button.onTap((res) => {
          console.log("用户授权:", res);
          var userInfo = res.userInfo;
          var nickName = userInfo.nickName;
          var avatarUrl = userInfo.avatarUrl;
          var gender = userInfo.gender; //性别 0:未知、1:男、2:女
          var province = userInfo.province;
          var city = userInfo.city;
          var country = userInfo.country;
          button.destroy();
          resolve(userInfo);
        });
      }else {
        wx.getUserInfo({
          withCredentials: true,
          success: res => {
            var userInfo = res.userInfo;
            var nickName = userInfo.nickName;
            var avatarUrl = userInfo.avatarUrl;
            var gender = userInfo.gender; //性别 0:未知、1:男、2:女
            var province = userInfo.province;
            var city = userInfo.city;
            var country = userInfo.country;
            resolve(userInfo);
          },
          fail: res => {
            wx.showModal({
              title: '友情提醒',
              content: '请允许微信获得授权!',
              confirmText: "授权",
              showCancel: false,
              success: res => {
                resolve(null);
              }
            });
          }
        });
      }
    });
}`

最后,就是软著:我走的某宝,出证书时间和价格成正比,不多说了,自己去了解。


我的第二款微信小游戏也上线了:

4赞

能不能分享一下绘制子域排行榜的代码

你好,这个left和bottom是怎么确定下来的?
感觉跟cocos的屏幕位置不对啊

请问一下图片资源是放在哪个路径下的,为什么我用text创建可以,但是用image就显示不出来

image 可以用网络图片也可以用在resource目录下的文件

绘制子域排行榜可以参考一下这个帖子http://forum.cocos.com/t/topic/60285

我的图片也不显示啊

官方排行榜 例子, 卡顿严重, 可否分享一下

var sysInfo = wx.getSystemInfoSync();
var left = sysInfo.screenWidth/2;
var top = sysInfo.screenHeight/2;
这样可以获取小游戏屏幕宽高

这个能不能说的详细一点呢,是放在resources下面么,路径是从哪一级开始填呢,我试过好多了都不行。

授权按钮的位置,相对屏幕的left,bottom位置,这个可以根据自己的需求定。

我上面的代码里,判断sdkVersion 是通过转成number比较的,这里可以优化一下:其实可以直接比较字符串即可。

非常感谢楼主

我的也是 解决了吗

我看很多人在说授权按钮图片不显示的问题,说明一下:

那个按钮,设置好图片路径,在最新的开发者工具中,会看到一个边框,说可以正常点击的,看不到图片正常。想看图片,需要在真机上才能看到,望周知。

能提供一下button_wx_getuserinfo.png在本地相对于assets的路径吗,我这真机上也显示不出来,是不是需要提前加载呢?

路径的完整的地址,你在开发者工具中就能查看。

真机不显示,你确定你的微信是最新版吗?基础库版本低于2.0.1的确是不显示。

我想问下,如果授权后,用户修改了昵称或头像,你这边缓存的本地还是旧的,会不会有问题

只要授权过,wx.getUserInfo获取到的都是最新的数据。

能分享下宝链不。。。