小程序运行环境

小程序在运行过程中,有时候需要判断当前的运行环境,以帮助开发做一些必要的处理。

比较常见的场景:

  • 某个功能只针对 Android 需要在 iOS 设备上屏蔽功能入口
  • 某个小程序的 API 方法需要在高于特定客户端版本号的 App 上运行
  • 在不同阶段(开发版、体验版、正式版)的小程序中需要调用不同环境(开发环境、灰度环境、生成环境)的接口域名

小程序的运行环境目前包括:

  • 操作系统 OS
  • 客户端 App
  • 小程序容器 SDK
  • 基础库 JSAPI
  • 小程序应用

操作系统 OS

通过 ok.getSystemInfo() 方法可以获取当前运行的操作系统的类型 platform,其值为

platform 的合法值

类型 说明
android string Android 系统
ios string iOS 系统
ok.getSystemInfo().then((res) => {
const platform = res.data.platform;
// Android
if (platform === "android") {
// do something...
}
// iOS
if (platform === "ios") {
// do something...
}
});

客户端 App

通过 ok.getSystemInfo() 方法可以获取当前运行的客户端的 App 的标识 clientId,其值为

clientId 的合法值

类型 说明
ecloud string 天翼云盘 App
esmarthome string 小翼管家 App
devtools string 桌面开发者工具
ok.getSystemInfo().then((res) => {
const clientId = res.data.clientId;
// 天翼云盘 App
if (clientId === "ecloud") {
// do something...
}
// 小翼管家 App
if (clientId === "esmarthome") {
// do something...
}
// 桌面开发者工具
if (clientId === "devtools") {
// do something...
}
});

通过 ok.getSystemInfo() 方法也可以获取当前运行的客户端的版本号。

ok.getSystemInfo().then((res) => {
const clientVersion = res.data.client;
console.log(clientVersion);
// 8.7.0
});

容器 SDK

通过 ok.getSystemInfo() 方法也可以获取当前运行的小程序容器 SDK 的版本号。

ok.getSystemInfo().then((res) => {
const sdkVersion = res.data.SDKVersion;
console.log(sdkVersion);
// 1.0.0
});

基础库 JSAPI

通过 ok.getVersion() 方法也可以获取当前运行的小程序框架基础库(JSAPI)的版本号。

ok.getVersion().then((res) => {
const jsapiVersion = res.data.version;
console.log(jsapiVersion);
// 1.2.1
});

小程序应用

通过 ok.getH5AppInfo() 方法可以获取当前运行的小程序的版本类型 versionType,其值为

versionType 的合法值

类型 说明
1 number 开发版
2 number 体验版
3 number 正式版
ok.getH5AppInfo().then((res) => {
const versionType = res.data.versionType;
// 开发版
if (versionType === 1) {
// do something...
}
// 体验版
if (versionType === 2) {
// do something...
}
// 正式版
if (versionType === 3) {
// do something...
}
});
  1. 1. 小程序运行环境
    1. 1.1. 操作系统 OS
    2. 1.2. 客户端 App
    3. 1.3. 容器 SDK
    4. 1.4. 基础库 JSAPI
    5. 1.5. 小程序应用