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

简介: 根据官方文档有两种方式可以判断:1、方法一: 调用获取系统信息API【uni.getSystemInfoSync()】,获取environment 字段判断。在官方文档中特别说明:在企业微信中调用此接口时,会额外返回一个 environment 字段(微信中不返回),如此字段值为 wxwork,则表示当前小程序运行在企业微信环境中。注意:只有运行在企业微信环境中,才能调用【wx.qy】的接口。2、方法二: 根据上面一个提示,告诉我们在企微环境中,才可以调用【wx.qy】以获取版本信息。

前言


根据官方文档有两种方式可以判断:

1、方法一: 调用获取系统信息API【uni.getSystemInfoSync()】,获取environment 字段判断。


在官方文档中特别说明:在企业微信中调用此接口时,会额外返回一个 environment 字段(微信中不返回),如此字段值为 wxwork,则表示当前小程序运行在企业微信环境中。

注意:只有运行在企业微信环境中,才能调用【wx.qy】的接口。


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


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


1、企业微信小程序调用getSystemInfo获取不到environment: “wxwork”?

2、企业微信小程序模式 environment: “wxwork” 时有时无?

这两个都来自微信开放社区的问答,但是从回答中没有看到明确的答案,应该是他们通过代码片段内部解决了吧,只是没有放出来,应该是开发问题(来自微信官方的自信)。

那么根据微信官方文档,取以上两个方法综合处理,应该是没得问题的。


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


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')
},


相关文章
|
1月前
|
存储 JSON 小程序
微信小程序入门之新建并认识小程序结构
微信小程序入门之新建并认识小程序结构
50 1
ly~
|
2月前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
78 6
|
4月前
|
小程序
【微信小程序-原生开发】实用教程12 - 注册页(含获取用户微信昵称,原生form的表单提交,t-result 的使用)
【微信小程序-原生开发】实用教程12 - 注册页(含获取用户微信昵称,原生form的表单提交,t-result 的使用)
39 0
|
1月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
526 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
1月前
|
小程序 前端开发 数据可视化
微信商城小程序WeiMall
微信商城小程序WeiMall
32 0
|
2月前
|
小程序 前端开发 API
微信小程序 - 调用微信 API 回调函数内拿不到 this 问题(解决方案)
本文讨论了在微信小程序中调用API回调函数时无法获取到`this`上下文的问题,并提供了解决方案。在回调函数中,使用一个变量(如`that`)来保存当前的`this`引用,然后在回调内部使用这个变量来访问当前页面的数据和方法。
|
3月前
|
移动开发 小程序 前端开发
|
3月前
|
JSON 小程序 JavaScript
超详细微信小程序开发学习笔记,看完你也可以动手做微信小程序项目
这篇文章是一份全面的微信小程序开发学习笔记,涵盖了从小程序介绍、环境搭建、项目创建、开发者工具使用、文件结构、配置文件、模板语法、事件绑定、样式规范、组件使用、自定义组件开发到小程序生命周期管理等多个方面的详细教程和指南。
|
3月前
|
小程序 前端开发
微信小程序商城,微信小程序微店 【毕业设计参考项目】
文章推荐了一个微信小程序商城项目作为毕业设计参考,该项目在Github上获得18.2k星,提供了详细的使用教程和前端页面实现,适合学习微信小程序开发和作为毕业设计项目。
微信小程序商城,微信小程序微店 【毕业设计参考项目】
|
3月前
|
小程序 开发者
万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】
这篇文章分享了四个不同应用场景下的微信小程序个人主页的源代码和页面效果展示,包括商城系统、外卖系统、医疗挂号和电影购票系统的个人主页。提供了完整的页面布局和样式代码,允许开发者直接复制粘贴并根据自己的项目需求进行简单的改造使用。
万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】