当前位置:首页 > uni-app

uniapp 代码区分

2026-02-06 00:10:06uni-app

区分开发环境与生产环境

uniapp 中可通过 process.env.NODE_ENV 判断当前环境:

  • 开发环境值为 'development'
  • 生产环境值为 'production'

示例代码:

if (process.env.NODE_ENV === 'development') {
  console.log('开发环境');
} else {
  console.log('生产环境');
}

区分平台(App/H5/小程序)

使用 uni.getSystemInfoSync().platform 或条件编译:

uniapp 代码区分

// 方式1:运行时判断
const platform = uni.getSystemInfoSync().platform;
console.log('当前平台:', platform); // ios/android/h5/weixin等

// 方式2:条件编译(编译时生效)
// #ifdef H5
console.log('H5平台特有逻辑');
// #endif
// #ifdef MP-WEIXIN
console.log('微信小程序特有逻辑');
// #endif

区分 iOS 与 Android

通过 uni.getSystemInfoSync() 获取系统信息:

const systemInfo = uni.getSystemInfoSync();
if (systemInfo.platform === 'ios') {
  console.log('iOS设备');
} else if (systemInfo.platform === 'android') {
  console.log('Android设备');
}

区分不同小程序平台

使用条件编译或动态判断:

uniapp 代码区分

// 条件编译示例
// #ifdef MP-WEIXIN
console.log('微信小程序');
// #elif MP-ALIPAY
console.log('支付宝小程序');
// #endif

// 动态判断
const { platform } = uni.getSystemInfoSync();
switch (platform) {
  case 'weixin':
    console.log('微信小程序');
    break;
  case 'alipay':
    console.log('支付宝小程序');
    break;
}

区分调试模式

通过 __wxConfig 或自定义全局变量判断:

// 微信小程序调试模式
// #ifdef MP-WEIXIN
const isDebug = __wxConfig.debug;
console.log('调试模式:', isDebug);
// #endif

// 自定义全局变量(需在main.js中设置)
if (window.isDebugMode) {
  console.log('自定义调试模式');
}

代码组织建议

  1. 将环境相关配置抽离为单独文件(如 env.js),通过导出不同配置实现区分。
  2. 复杂逻辑优先使用条件编译,减少运行时判断。
  3. 动态判断平台时,建议封装为工具函数复用。

示例封装:

// utils/platform.js
export function isH5() {
  // #ifdef H5
  return true;
  // #endif
  return false;
}

标签: 代码uniapp
分享给朋友:

相关文章

uniapp 推送

uniapp 推送

uniapp 推送实现方法 uniapp 推送功能可以通过多种方式实现,主要包括使用第三方推送服务、原生插件或云服务。以下是几种常见的实现方案: 使用 UniPush 服务 UniPush 是 D…

uniapp实现支付功能

uniapp实现支付功能

支付功能实现概述 在UniApp中实现支付功能通常需要对接第三方支付平台(如微信支付、支付宝支付等)。以下是基于微信支付和支付宝支付的通用实现流程。 微信支付实现步骤 1. 配置支付权限 在微信开放…

uniapp面试问啥

uniapp面试问啥

技术基础类问题 UniApp框架特性 跨端实现原理及条件编译的使用场景 如何理解"一次开发,多端运行"的优缺点 rpx与vw/vh单位的适配差异 Vue相关 生命周期在UniA…

uniapp使用axios无法请求

uniapp使用axios无法请求

uniapp中使用axios请求问题解决方案 在uniapp中使用axios可能会遇到跨域、请求失败或兼容性问题。以下是常见原因及解决方法: 检查axios安装与引入 确保已正确安装axios:…

uniapp 如何封装request请求

uniapp 如何封装request请求

封装 request 请求的核心思路 在 UniApp 中封装请求通常基于 uni.request,通过统一处理 URL、参数、header 和拦截逻辑提升代码复用性。以下是一个完整封装方案: 创建…

海康 uniapp

海康 uniapp

海康威视与UniApp集成方案 海康威视的硬件设备(如摄像头、NVR等)与UniApp结合,通常需要通过海康的开放平台API或SDK实现功能调用。以下是具体实现方法: 获取海康威视开放平台权限 注册…