uniapp如何读取manifest文件

“在uniapp开发中,如何读取manifest.json文件的内容?我想获取应用的版本号、名称等配置信息,但不知道具体应该怎么操作。是否有现成的API可以直接调用?还是需要手动解析这个文件?求详细的实现方法。”

2 回复

在uniapp中,可以通过uni.getSystemInfoSync().app获取manifest.json中的配置信息。例如获取应用版本号:uni.getSystemInfoSync().app.version


在 UniApp 中,manifest.json 文件是项目的核心配置文件,用于定义应用名称、版本、权限等。由于该文件在编译时会被处理,不能直接通过运行时代码动态读取其原始内容。但可以通过以下方法获取配置信息:

1. 使用 UniApp 全局变量(推荐)

在页面或组件中,直接访问 uni.getSystemInfoSync() 或特定 API 获取部分 manifest 中定义的配置:

// 获取应用版本(对应 manifest.json->versionName)
const systemInfo = uni.getSystemInfoSync();
console.log(systemInfo.appVersion); // 输出应用版本号

// 获取应用名称(需调用 API,仅部分平台支持)
uni.getAppBaseInfo({
  success: (res) => {
    console.log(res.appName); // 输出应用名称
  }
});

2. 通过条件编译读取静态配置

如需在代码中引用 manifest 中的固定配置,可在 manifest.json 中配置,然后通过条件编译获取:

// manifest.json
{
  "name": "MyApp",
  "version": "1.0.0",
  // 自定义字段(仅H5端支持)
  "h5": {
    "publicPath": "/custom/"
  }
}
// 页面代码中使用条件编译
// #ifdef H5
const publicPath = '/custom/'; // 直接使用配置值
// #endif

3. 通过 vue.config.js 注入全局变量(适用于H5)

vue.config.js 中配置:

module.exports = {
  chainWebpack: (config) => {
    config.plugin('define').tap((args) => {
      args[0]['process.env.APP_NAME'] = JSON.stringify('MyApp');
      return args;
    });
  }
};

在代码中访问:

console.log(process.env.APP_NAME); // 输出 "MyApp"

注意事项:

  • 跨平台差异:部分配置(如应用名称)在安卓/iOS 需通过原生插件获取。
  • 动态修改:manifest 配置在编译后固定,无法运行时修改。
  • 如需完整读取,建议将配置复制到单独的 config.js 文件中管理。

推荐优先使用 UniApp 提供的 API 获取系统信息,避免直接操作 manifest 文件。

回到顶部