根据有两种方式可以判断:
1、方法一: 调用获取系统信息API【uni.getSystemInfoSync()】,获取environment 字段判断。
2、方法二: 根据上面一个提示,告诉我们在企微环境中,才可以调用【wx.qy】以获取版本信息。
由于调用获取系统信息API可能存在错误:
1、
2、
这两个都来自微信开放社区的问答,但是从回答中没有看到明确的答案,应该是他们通过代码片段内部解决了吧,只是没有放出来,应该是开发问题(来自微信官方的自信)。
那么根据微信官方文档,取以上两个方法综合处理,应该是没得问题的。
以下是关于在个人微信和企业微信输出的比较:
wx.qy = {
"version":{
"updateTime":"2020.9.09 16:00:00",
"info":"",
"version":"1.3.7"
},
"isWxLoginSupport":true
}
返回企业微信API相关版本信息。
let _sysInfo = uni.getSystemInfoSync()
_sysInfo = {
...
"environment":"wxwork",
"model":"iPhone X",
}
// 其中
_sysInfo.environment = wxwork;
返回 environment 字段为 wxwork。
wx.qy = undefined
无法获取到相关信息。
let _sysInfo = uni.getSystemInfoSync()
_sysInfo = {
...
"model":"iPhone X",
}
// 其中
_sysInfo.environment = undefined;
没有返回 environment 字段。
判断是否在企业微信环境中编译运行
isQiWeiCompileOperation() {
let _sInfo = uni.getSystemInfoSync()
if ((_sInfo.environment && 'wxwork' == _sInfo.environment) || wx.qy ) {
return true
} else {
return false
}
}
更新并存储小程序编译环境
updateCompileOperation() {
let _sInfo = uni.getSystemInfoSync()
if ((systemInfo.environment && 'wxwork' == systemInfo.environment) || wx.qy ) {
state.vuex_is_qy = true
} else {
state.vuex_is_qy = false
}
}
// 在小程序启动页【App.vue】调用存储
async onLaunch(options) {
this.$store.commit('updateCompileOperation')
},