uniapp、uniappx、flutter热更新、全量更新

概念

热更新

可以安装后直接自动刷新(设置机制)达到更新目的。

  • UNIAPP:WGT包。仅包含前端资源:页面、JS、CSS、图片和manifest.json。

  • 原生安卓:资源补丁、Dex补丁。

全量更新/更新apk/IOS

需要用户手动安装且需要应用市场审核通过(IOS必需)。

完整的应用程序包(apk/ipa)。包含前端资源、原生渲染引擎、所有原生插件、权限配置等。

渠道包

vite环境与define

  1. 创建环境变量文件 :在项目根目录创建 .env.[mode] 文件,例如 .env.huawei
ini 复制代码
# .env.huawei
VITE_CHANNEL_ID=huawei
  1. 配置 vite.config.ts :在配置文件中,使用 Vite 的 loadEnv 加载对应文件,并通过 define 将变量注入。
javascript 复制代码
import { defineConfig, loadEnv } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'

export default defineConfig(({ mode }) => {
  // 加载 .env.[mode] 文件中的环境变量
  const env = loadEnv(mode, process.cwd(), '')

  return {
    plugins: [uni()],
    define: {
      // 将环境变量注入为全局常量
      __CHANNEL_ID__: JSON.stringify(env.VITE_CHANNEL_ID),
    }
  }
})
  1. 执行构建命令 :通过 --mode 参数指定使用哪个环境变量文件。
arduino 复制代码
# 打包华为渠道包
npm run build:app -- --mode huawei
  1. 获取:
ini 复制代码
// uni.getLaunchOptionsSync()
const launchOptions = uni.getLaunchOptionsSync();
const channelId = launchOptions.channel;
console.log('当前渠道ID:', channelId);

/// plus.runtime
const channelId = plus.runtime.channel;
console.log('当前渠道ID:', channelId);
相关推荐
方白羽4 小时前
Android17 重写 MessageQueue,解决 Handler 隐性卡顿
android·app
刘广睿1 天前
素材库智能集合怎么设计?把多维筛选存成动态收藏的功能复盘
客户端·架构设计·产品设计·素材管理
MyBili2 天前
【安卓开发/搞机】快图浏览(QuickPic)技术解析:为何这款3MB应用仍是本地图库的性能天花板?
android·app·安卓·文件管理·相册·看图软件·手机相册
kango4 天前
Xcode、模拟器Runtime、真机符号完整知识手册
ios·app
蓝悦无人机4 天前
蓝悦地面站APP深度测评:一套软件,手机/电脑双端通用,打通“规划-执行-复盘”全链路
app·无人机·无人机地面站·地面站平台
skr爱码士5 天前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt·ui·客户端
梦想的颜色5 天前
【AI实战】React‑Native + AI 移动端 APP 完整实战全流程|云端 / 本地大模型、Agent 集成、安装配置、避坑指南
react.js·大模型·app·agent·reactnative·expo·ai 应用开发
黑臂麒麟7 天前
HarmonyOS鸿蒙实战应用7:随手账本——数据导出与分享
华为·app·arkts·鸿蒙
黑臂麒麟7 天前
Harmony鸿蒙实战应用10:随手账本——发布检查与最终验收
华为·app·arkts·鸿蒙
黑臂麒麟7 天前
HarmonyOS鸿蒙实战应用6:随手账本——Preferences本地持久化
数据库·华为·app·鸿蒙