概念
热更新
可以安装后直接自动刷新(设置机制)达到更新目的。
-
UNIAPP:WGT包。仅包含前端资源:页面、JS、CSS、图片和manifest.json。 -
原生安卓:资源补丁、Dex补丁。
全量更新/更新apk/IOS
需要用户手动安装且需要应用市场审核通过(IOS必需)。
完整的应用程序包(apk/ipa)。包含前端资源、原生渲染引擎、所有原生插件、权限配置等。
渠道包
vite环境与define
- 创建环境变量文件 :在项目根目录创建
.env.[mode]文件,例如.env.huawei
ini
# .env.huawei
VITE_CHANNEL_ID=huawei
- 配置
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),
}
}
})
- 执行构建命令 :通过
--mode参数指定使用哪个环境变量文件。
arduino
# 打包华为渠道包
npm run build:app -- --mode huawei
- 获取:
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);