- API 路由统一: 移除 /api/h5/,统一 /api/pms/ 入口 - 二进制改名: api-server -> pms-api(与服务名一致) - nginx: 合并 /api/ + /pms/api/ 为 /api/pms/ - 新增 docs/API.md 接口文档 - 后端: CabinetDetail 增加 rssi/pow_fail/address/soc 等字段 - Redis 管道批量读取仓体实时数据(SOC/电压/电流/功率) - DB: 所有 TIMESTAMP 列改为 DATETIME(修复类型不匹配) - 用户管理: 新增创建时间/修改时间列,状态改用 Switch - 角色管理/用户管理: 操作按钮改为图标 - PC 设备详情: 基本信息补全 RSSI/ICCID/电源/地址 - PC 卡片: 通道统计改用 Lucide 图标,颜色统一 - PC 二维码: canvas 渲染,含编号文字,支持右键下载 - H5: 按 uni-app 规范修正导航(navigateTo 替代 reLaunch) - H5: 详情页加返回导航条 - H5: 扫码支持摄像头(jsQR)+ ?id= 参数 - H5: 底部 tabBar 在所有页面常显 - H5: 首页统计改为 6 项(设备/通道/空闲/充电/充满/故障) - H5: 下拉刷新 / 上拉加载 - 产品首页: 添加业务联系 - 文档: 清理过时文件,补充缺失规范章节
3.3 KiB
3.3 KiB
name, description
| name | description |
|---|---|
| uni-env | Environment detection utilities for uni-app - detect platform at runtime |
uni-env
Runtime environment detection utilities for uni-app. Detect the current platform in a type-safe way.
Installation
npm i @uni-helper/uni-env
Usage
import { isH5, isMpWeixin, isApp, isMp } from '@uni-helper/uni-env'
if (isH5) {
console.log('Running in H5')
}
if (isMpWeixin) {
console.log('Running in WeChat Mini Program')
}
Available Detectors
Platform Groups
| Detector | Description |
|---|---|
isH5 |
H5/Web platform |
isApp |
iOS/Android App |
isMp |
Any Mini Program |
isQuickapp |
Quick App |
Mini Program Detectors
| Detector | Description |
|---|---|
isMpWeixin |
WeChat Mini Program |
isMpAlipay |
Alipay Mini Program |
isMpBaidu |
Baidu Smart Program |
isMpToutiao |
Douyin Mini Program |
isMpQQ |
QQ Mini Program |
isMpKuaishou |
Kuaishou Mini Program |
isMpJd |
JD Mini Program |
isMpHarmony |
HarmonyOS Meta Service |
isMpLark |
Feishu/Lark Mini Program |
Development Detectors
| Detector | Description |
|---|---|
isDev |
Development environment |
isProd |
Production environment |
Use Cases
Conditional Logic
import { isH5, isMpWeixin, isApp } from '@uni-helper/uni-env'
function getStorageAdapter() {
if (isH5) {
return new LocalStorageAdapter()
}
if (isMpWeixin) {
return new WechatStorageAdapter()
}
if (isApp) {
return new NativeStorageAdapter()
}
return new UniStorageAdapter()
}
Platform-Specific Features
import { isH5, isMpWeixin } from '@uni-helper/uni-env'
function share(content: ShareContent) {
if (isMpWeixin) {
// Use WeChat share API
wx.showShareMenu({ withShareTicket: true })
} else if (isH5) {
// Use Web Share API
navigator.share({
title: content.title,
url: content.url,
})
} else {
// Use uni-app generic share
uni.share({
title: content.title,
path: content.path,
})
}
}
With definePage
import { isH5 } from '@uni-helper/uni-env'
definePage(() => {
const title = isH5 ? 'H5 Version' : 'Mobile Version'
return {
style: {
navigationBarTitleText: title,
},
}
})
Important Note
This package is primarily for plugin developers. For runtime conditional compilation, use uni-app's official conditional compilation with /* #ifdef */ comments.
For better conditional compilation support, consider using unplugin-preprocessor-directives.
Comparison with Conditional Compilation
// Runtime detection (uni-env)
import { isH5 } from '@uni-helper/uni-env'
if (isH5) {
// This code exists in all builds
doH5Thing()
}
// Build-time conditional compilation
// #ifdef H5
doH5Thing()
// #endif
// This code only exists in H5 builds
Choose based on your needs:
- Use uni-env for runtime detection when you need the same bundle for multiple platforms
- Use conditional compilation for build-time optimization and smaller bundles