一、需求

之前有提到过,可以使用 weex 的实例属性判断系统平台,但是有的时候,还需要判断容器平台,weex 实例属性使用的方式:

在 weex 或者是 RN 或者是 Rax 开发的项目中,由于不同的平台使用的 API 或者模块逻辑可能不同,

因此需要对 APP 运行的环境进行判断。

常见环境如 webweexiosandroid

其中 weexios / android 并不冲突,因为 ios / android 是系统平台,而 weex / react-native 是容器环境。

二、universal-env 判断容器环境

1、说明

这个包是在 rax/package 中发现的。

这个包是 rax 的内置模块,也可以单独下载使用。

npm 地址:

2、安装

yarn add universal-env
# npm install -S universal-env

3、使用

比如我在使用 vue 作为前端框架 的 weex 项目中使用:

import universalEnv from  'universal-env';
export default {
  data(){
  },
  beforeMount(){
    this.getList();
    console.log(universalEnv);
  },
}

universalEnv 有四个属性:

  • isWeb
  • isNode
  • isWeex
  • isReactNative

universalEnv 的内容如下(web 环境):

n1.jpg

三、universal-platform

1、说明

除了使用 weex 实例属性判断系统平台之外,还可以通过 universal-platform 判断,适用于没有 weex 环境的容器环境中。

npm 地址:

2、安装

yarn add universal-platform
# npm install -S universal-platform

3、使用

import universalPlatform from 'universal-platform'

console.log(universalPlatform);

n2.jpg

属性值中 OS 表示系统类型,可能的返回值是(注意大小写):

  • 'Web'
  • 'Android'
  • 'iOS'