小程序企业微信登录和更新检测支持

2022-06-24  本文已影响0人  litielongxx

小程序在企业微信后台设置关联,就可以支持打开了。


image.png

1 微信暂不支持企业微信授权登录
2 微信/企业微信打开为两个账号,且也是两个版本(前者可能更新了,后者还是老版本)
3 实现企业微信登录,实际是后端自行对比数据统一核对归类
更新为精默更新,但可以主动提示,一般最晚24小时。
更新检测:

// app.vue
onShow() {
    console.log('App onShow')
     if (wx.canIUse("getUpdateManager")) {
      const updateManager = wx.getUpdateManager();
      updateManager.onCheckForUpdate(function(res) {
        if (res.hasUpdate) {
          // 请求完新版本信息的回调
          updateManager.onUpdateReady(function() {
            wx.showModal({
              title: "更新提示",
              content: "新版本已经准备好,是否重启应用?",
              success: function(res) {
                if (res.confirm) {
                  // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate();
                }
              },
            });
          });
          updateManager.onUpdateFailed(function() {
            wx.showModal({
              // 新的版本下载失败
              title: "已经有新版本了哟~",
              content: "新版本已经上线啦~,请您删除当前小程序,重新搜索进入哟~",
            });
          });
        }
      });
    } else {
      // wx.showModal({
      //   // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
      //   title: "提示",
      //   content:
      //     "当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。",
      // });
    }
  },

企业微信获取流程
https://blog.csdn.net/jingjingshizhu/article/details/104313883
判断企业微信环境
先执行wx.login获取code,传给后台进行最重要的和code2Session微信那进行交换,之后通过企业微信的获取昵称和头像
获取信息。

        let _sysInfo = uni.getSystemInfoSync()

        if (_sysInfo.environment == 'wxwork') {
         // uni.showLoading({
       //    title: '请求中',
       //    icon: 'none'
        });
          // 后端调用code2Session后来获取企业微信昵称和头像 

          qyresult=await new Promise((resolve)=>{
            wx.qy.login({
              //获取企业微信派发的临时登录凭证
              success: async (Qyres) => {
                // 传递后端接口code ,接口自行处理code2Session步骤
               // let loginQyData = await ({
                  code: Qyres.code,
                });
             //   uni.hideLoading()
                resolve(loginQyData)
              },
              fail: (err) => {
                uni.hideLoading()
                uni.showToast({
                  title: err,
                  icon: 'none'
                })
                console.log(err, err)
                throw new Error(err.errMsg)
              }
            })
          })

          console.log('qyresult',qyresult)

          根据qyresult结果请求头像和昵称 
let promise1 = new Promise((resolve, reject) => {
          wx.qy.getEnterpriseUserInfo({
            success: function (res) {
              // that.model.wx_nickname = res.userInfo.name;
              resolve(res);
            },
            fail: function (err) {
              console.log(err);
              reject(err);
            },
          });
        });
        //获取微信头像
        let promise2 = new Promise((resolve, reject) => {
          wx.qy.getAvatar({
            success: function (res) {
              // console.log(res);
              // that.model.wx_avatarurl = res.avatar;
              resolve(res);
            },
            fail: function (err) {
              if (err) {
                // uni.showToast({
                //   // title:''+JSON.stringify(err.errMsg),
                //   title: "您需要授权,才能同步企业微信头像!",
                //   icon: "none",
                // });
                return;
              }
              reject(err);
            },
          });
        });

        Promise.all([promise1, promise2])
          .then(async (res) => {
            //头像,昵称获取到了,执行正常注册流程 [{},{}]
            console.log("头像、昵称", res);
            }
          })
          .catch((err) => {
            console.log(err);
          });
        }
   
上一篇 下一篇

猜你喜欢

热点阅读