讲师中心 微信公众号
AI工具推荐 视频效率加速

uni-app怎么设置manifest.json中的多端适配规则

胖墨大大_1442

胖墨大大_1442

发布时间:2026-08-21 13:14:10

|

230人浏览过

|

来源于php中文网

原创

manifest.json需按平台分层配置,如app-plus、mp-weixin、h5等;权限须写在对应平台节点下且名称完整准确;API地址应通过自定义字段注入并配合构建脚本处理。

uni-app怎么设置manifest.json中的多端适配规则

manifest.json 里怎么写平台特有配置

manifest.json 不是扁平 JSON,而是按平台分层嵌套的结构。你不能把所有配置写在顶层,否则 Android/iOS/H5 会互相覆盖或被忽略。

必须把平台专属字段放在对应平台节点下:app-plus(App)、mp-weixin(微信小程序)、h5(H5)、mp-alipay(支付宝)等。这些字段名不能拼错,大小写敏感,比如 mp-weixin 写成 mp-weixin 是对的,但 mp-weChat 或 weixin 就无效。

  • app-plus 下的 distribute.android.packagename 和 distribute.ios.bundleidentifier 必须填写合法包名/Bundle ID,否则打包失败或安装后无法启动
  • h5 下的 router.mode 只影响 H5 路由行为,对 App 完全无作用;设成 "history" 时,base 字段必须同步配对,比如部署在 /admin/ 子路径,就得写 "base": "/admin/"
  • mp-weixin 的 appid 是微信后台申请的真实 ID,填错会导致真机调试白屏、上传失败

Android 和 iOS 权限声明为什么总不生效

权限不弹窗、打包后调用 API 报错、真机静默失败——90% 是因为 manifest.json 里权限字段写错了位置或格式。

Android 权限必须写在 app-plus.distribute.android.permissions 数组里,且每个项必须是完整限定名,例如:"android.permission.CAMERA"。漏掉 android.permission. 前缀,HBuilderX 不报错,但生成的 APK 在 Android 6.0+ 上直接拒绝调用,plus.android.requestPermissions 回调里的 deniedAlways 可能为空,误判为“用户没点”,实际是系统压根不认这个权限。

Feishu calendar sync, local ics to json data for AI agent
Feishu calendar sync, local ics to json data for AI agent

将ICS日历文件转为JSON格式,用于飞书日历导入导出及数据集成。

下载
  • 常见错误写法:"CAMERA"、"camera"、"READ_EXTERNAL_STORAGE"(缺前缀)
  • Android 10+ 还需注意:READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 需配合 requestLegacyExternalStorage: true(仅调试),上架前应迁移到 Scoped Storage
  • iOS 没有运行时权限弹窗机制,app-plus.distribute.ios 下不支持声明权限,需通过 Info.plist 手动补充(如 NSCameraUsageDescription),manifest.json 里只管 Bundle ID 和图标资源路径

多环境 API 地址怎么注入到 App 端

别指望 process.env.UNI_BASE_URL 在 App 端生效。App 构建时不会解析 JS 层环境变量,它只读 manifest.json 里明确声明的字段。

正确做法是:在 manifest.json 顶层或 app-plus 节点下加自定义字段,比如 "apiBase": "https://api.example.com",然后在代码里用 uni.getProvider 或 plus.runtime.getProperty 读取(注意:H5 端无法用后者,需兼容处理)。

  • 不要把敏感地址写死在 manifest.json 中——它会被打包进原生资源,可被反编译提取
  • 推荐方案:用构建脚本(如 vue.config.js 中的 define)替换占位符,例如把 "apiBase": "__API_BASE__" 替换为真实值,避免暴露逻辑
  • 测试环境打包时,务必验证 uni.getSystemInfoSync().platform === 'android' 或 'ios' 后再读取,避免 H5 端因方法不存在而报错

微信小程序隐私接口声明为什么审核被拒

微信小程序不是“声明了权限就能用”,而是按具体 API 名精确登记。漏一个、错一个,真机就静默失败,控制台无报错,只返回 errCode: -1。

必须把所有实际调用的 API 名,原样写进 mp-weixin.requiredPrivateInfos 数组。这个字段只接受微信文档明确定义的字符串,比如你用了 uni.getLocation 和 uni.getPhoneNumber,就必须同时写 "getLocation" 和 "getPhoneNumber"。

  • 不能写别名:"getlocation"(小写)、"getUserInfo"(驼峰)、"uniGetLocation"(加前缀)都无效
  • 必须配套 permission.scope.userLocation.desc 字段,且值不能为空字符串,否则华为、小米商店审核可能直接驳回
  • 如果只在条件分支里调用某个 API(比如仅登录后才调 getPhoneNumber),也必须提前声明,否则上线后该分支必挂
真正容易被忽略的是:manifest.json 的字段生效范围极窄,它只影响原生打包阶段的资源配置和声明,不参与 JS 运行时逻辑。任何想靠它“动态切换逻辑”的尝试,都会在 App 端失效。多端适配的关键不在写得多,而在写得准——平台字段放对位置、权限名写全前缀、隐私接口名一字不差。

热门AI工具

更多
LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2283

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

4943

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

6030

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

5538

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

783

2024.05.22

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

80

2026.09.30

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

80

2026.09.30

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

80

2026.09.30

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

40

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn