Egret白鹭引擎实例开发之密室逃生RoomRun(六)发布微信小游戏(登录授权、转发分享)

一、发布微信小游戏

打开Egret Launcher发布RoomRun为微信小游戏。AppID最好自己申请一个,默认的有可能出现转发功能不生效的情况

image.png

用微信开发者工具打开刚才发布的项目,可以看到警告信息:获取 wx.getUserInfo 接口后续将不再出现授权弹窗。可以理解为授权弹窗需要用户主动点击授权按钮才会出现

image.png

二、登录授权

由于官方生成的微信小游戏实例没有考虑这种情况,所以我们要对platform.js里的getUserInfo进行修改

image.png

改写如下:判断是否已经授权过,若没有则添加一个透明的全屏按钮,这样用户随便点击一个位置就会弹出授权窗口

getUserInfo() {
    return new Promise((resolve, reject) => {
      wx.getSetting({
        success: function (res) {
          let sysInfo = wx.getSystemInfoSync();
          //获取微信界面大小
          let width = sysInfo.screenWidth;
          let height = sysInfo.screenHeight;
          var authSetting = res.authSetting
          if (authSetting['scope.userInfo'] === true) {
            wx.getUserInfo({
              success: function (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
                var result = { "nickname": nickName, "avatar": avatarUrl }
                resolve(result)
              }
            })
          } else if (authSetting['scope.userInfo'] === false) {
            let button = wx.createUserInfoButton({
              type: 'text',
              text: '',
              style: {
                left: 0,
                top: 0,
                width: width,
                height: height,
                backgroundColor: '#0000000',
                color: '#ffffff',
                textAlign: 'center',
                fontSize: 16,
                borderRadius: 4
              }
            })
            button.onTap((res) => {
              if (res.userInfo) {
                var nickName = res.userInfo.nickName
                var avatarUrl = res.userInfo.avatarUrl
                var result = { "nickname": nickName, "avatar": avatarUrl }
                resolve(result)
                button.destroy();
              }
            })
          } else {
            let button = wx.createUserInfoButton({
              type: 'text',
              text: '',
              style: {
                left: 0,
                top: 0,
                width: width,
                height: height,
                backgroundColor: '#0000000',
                color: '#ffffff',
                textAlign: 'center',
                fontSize: 16,
                borderRadius: 4
              }
            })
            button.onTap((res) => {
              if (res.userInfo) {
                var nickName = res.userInfo.nickName
                var avatarUrl = res.userInfo.avatarUrl
                var result = { "nickname": nickName, "avatar": avatarUrl }
                resolve(result)
                button.destroy();
              }
            })
          }
        }
      })
    })
  }

只有你点击了允许授权,方能点击开始游戏等操作

image.png

三、转发、分享

1、目前菜单按钮点开是没有转发功能

image.png

回到RoomRun项目,这里面定义了ShowShareMenu(),我们在微信开发者工具实现这个方法

image.png

在Main.ts相应地方调用ShowshareMenu()方法,这时候就出现转发按钮了

image.png

2、这里再实现主动分享的功能,打开Platform.ts,相应的添加shareAppMessage()方法

image.png

微信开发者工具打开platform.js,实现shareAppMessage()方法

image.png

然后可以在游戏结束的时候出现一个分享按钮,调用这个方法

platform.shareAppMessage();

源码:https://github.com/smiger/RoomRun


发表评论

(必填)

(必填)

(以便回访)

博客已稳定运行: 访问量:115,593 views 网站备案号:闽ICP备17026396号-1