小程序在企业微信后台设置关联,就可以支持打开了。
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);
});
}
网友评论