您的当前位置:首页正文

wxwork和wx.qy判断企业微信小程序编译运行环境

2024-11-28 来源:个人技术集锦

前言

根据有两种方式可以判断:
1、方法一: 调用获取系统信息API【uni.getSystemInfoSync()】,获取environment 字段判断。

2、方法二: 根据上面一个提示,告诉我们在企微环境中,才可以调用【wx.qy】以获取版本信息。


由于调用获取系统信息API可能存在错误:

1、
2、
这两个都来自微信开放社区的问答,但是从回答中没有看到明确的答案,应该是他们通过代码片段内部解决了吧,只是没有放出来,应该是开发问题(来自微信官方的自信)。
那么根据微信官方文档,取以上两个方法综合处理,应该是没得问题的。

以下是关于在个人微信和企业微信输出的比较:

1、企业微信

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。

2、个人微信

wx.qy = undefined

无法获取到相关信息。

let _sysInfo = uni.getSystemInfoSync()
_sysInfo = {
    ...
    "model":"iPhone X",
}

// 其中
_sysInfo.environment = undefined;

没有返回 environment 字段。

3、应用

判断是否在企业微信环境中编译运行

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')
},
显示全文