怎么在网站做视频接口软件网站开发公司名字
- 作者: 五速梦信息网
- 时间: 2026年03月21日 06:46
当前位置: 首页 > news >正文
怎么在网站做视频接口,软件网站开发公司名字,贵州企业网站建设招商,月嫂的个人简历网站模板TOC 基础配置
HBuilderX中打开项目的manifest.json文件#xff0c;在“基础配置”中可以设置App的应用名称、版本号等信息#xff1a;
应用标识
DCloud应用appid#xff08;简称appid#xff09;是由DCloud创建App项目时生成的唯一标识#xff0c;关联DCloud云端服务TOC 基础配置
HBuilderX中打开项目的manifest.json文件在“基础配置”中可以设置App的应用名称、版本号等信息
应用标识
DCloud应用appid简称appid是由DCloud创建App项目时生成的唯一标识关联DCloud云端服务创建项目后会自动生成不能随意变更。 注这与各家小程序的appid、Apple的appid(bundle id)及其它三方SDK平台申请的appid不同它们分别属于各自平台的appid体系 更多appid用途详见 DCloud appid使用说明
本地离线打包
离线打包时需在原生工程中设置Android平台参考 Android Studio工程配置DCloud appidiOS平台参考 XCode工程配置DCloud appid
应用名称
应用的名称发行为App时作为应用桌面图标的名称支持国际化时请参考 manifest.json国际化
本地离线打包
离线打包时需在原生工程中设置Android平台参考 Android Studio工程配置应用名称iOS平台参考 XCode工程配置应用名称
应用描述
应用的描述信息用于简单介绍应用情况发行为App时不会使用。
应用版本名称
应用显示的版本名称可以使用任何字符串推荐使用“.”分割的数字表示“主版本号.次版本号.编译版本号”如“1.1.1234”。云端打包后设置为原生工程的应用版本名称
Android平台 应用清单文件AndroidManifest.xml中manifest节点的android:versionName属性值安装到手机后可在“设置”-“应用管理”-“应用信息”中查看iOS平台 应用Info.plist文件中的CFBundleShortVersionString字段值安装到手机后可连接到电脑在iTunes的应用列表中查看。提交AppStore审核时通常跟后台构建的版本号一致审核失败后重新打包通常不需要修改版本名称。 在 App 中可通过 plus.runtime.version 获取应用版本名称。 本地离线打包
离线打包时需在原生工程中设置Android平台参考 Android Studio工程配置应用版本名称iOS平台参考 XCode工程配置应用版本名称
应用版本号
应用的内部版本号必须使用整数用于记录开发版本的建议每次发布云端打包时更新为比上一次高。如当前版本是100下次发布就要大于100比如101、102等。云端打包后设置为原生工程的应用版本号
Android平台 应用清单文件AndroidManifest.xml中manifest节点的android:versionCode属性值安装时只能高版本的安装包覆盖升级低版本的安装包提交各应用市场时也要求必须更新为比上次高的版本。iOS平台 应用Info.plist文件中的CFBundleVersion字段值。每次提交AppStore审核时都必须更新为比上一次高的版本号审核失败后重新打包也需要更新版本号。 在 App 中可通过 plus.runtime.versionCode 获取应用版本号。 本地离线打包
离线打包时需在原生工程中设置Android平台参考 Android Studio工程配置应用版本名称iOS平台参考 [XCode工程配置应用版本号]
图标配置
HBuilderX中打开项目的manifest.json文件在“App图标配置”中可以设置App的桌面图标推荐使用“自动生成图标”功能
如果不使用自动生成图标方式可按下面文档分别配置Android和iOS平台的图标。
Android平台
注意事项
必须使用png格式其它格式需要使用图片工具转换注意不要直接将jpg等其它格式图片直接改名为png系统没有对图标分辨率进行限制按照建议的分辨率配置即可图片支持透明区域建议使用圆角图标 提示可能有些特殊手机ROM对图标有所要求提交相应应用市场时注意看是否有要求 云端打包
可视化界面配置 推荐在可视化界面操作配置在“Android图标配置”下根据分辨率选择对应的图标
源码视图配置 切换到源码视图界面在 “app-plus”-“distribute”-“icons”-“android” 节点根据以下属性配置对应分辨率图标路径
属性名称类型说明xxxhdpiString2K屏设备程序图标分辨率要求192x192xxhdpiString1080P高分屏设备程序图标分辨率要求144x144xhdpiString720P高分屏设备程序图标分辨率要求96x96hdpiString高分屏设备程序图标分辨率要求72x72mdpiString普通屏设备程序图标分辨率要求48x48这类设备很少见可以不配置ldpiString大屏设备程序图标分辨率要求48x48这类设备很少见可以不配置 提示5 App项目源码视图节点为app-distribute-icons-android 默认图标 云端打包没有配置图标时将使用以下默认图标
离线打包
离线打包需在原生工程中配置应用图标参考Android原生工程配置
iOS平台
注意事项
必须使用png格式其它格式需要使用图片工具转换注意不要直接将jpg等其它格式图片直接改名为png图标必须是直角不要使用圆角图标使用圆角AppStore审核不会通过打包提交appstore时必须配置1024*1024分辨率的AppStore图标云端打包机默认使用纯白色图标所有图标不要包含透明信息alpha通道否则提交AppStore会报以下错误ITMS-90717错误
更多应用图标相关信息参考苹果官方说明https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/app-icon/
云端打包
可视化界面配置 推荐在可视化界面操作配置分别在“app store”、“iPhone图标配置”、“iPad图标配置”下根据分辨率选择对应的图标
app store 应用需要提交到AppStore上架审核是必须配置iPhone图标配置 打包时勾选“支持iPhone”时必须配置iPad图标配置 打包时勾选“支持iPad”是必须配置
源码视图配置 切换到源码视图界面在 “app-plus”-“distribute”-“icons”-“ios” 节点根据以下属性配置对应分辨率图标路径
属性名称类型说明iphone对象参考iPhone图标源码参数iPhone设备程序图标ipad对象参考iPad图标源码参数iPad设备程序图标appstoreStringApp Store图标路径分辨率要求1024x1024
iPhone图标源码参数
属性名称类型说明app2xStringiOS7设备程序主图标分辨率要求120x120app3xStringiOS7设备程序主图标分辨率要求180x180spotlight2xStringiOS7设备Spotlight搜索图标分辨率要求80x80spotlight3xStringiOS7设备Spotlight搜索图标分辨率要求120x120settings2xStringiOS7设备Settings设置图标分辨率要求58x58settings3xStringiOS7设备Settings设置图标分辨率要求87x87notification2xStringiOS7设备通知栏图标分辨率要求40x40notification3xStringiOS7设备通知栏图标分辨率要求60x60
iPad图标源码参数
属性名称类型说明appStringiOS7设备程序主图标分辨率要求76x76app2xStringiOS7高分屏设备程序主图标分辨率要求152x152proapp2xStringiOS9 iPad Pro(12.9英寸)设备程序主图标分辨率要求167x167spotlightStringiOS7设备Spotlight搜索图标分辨率要求40x40spotlight2xStringiOS7高分屏设备Spotlight搜索图标分辨率要求80x80settingsStringiOS5设备Settings设置图标分辨率要求29x29settings2xStringiOS5高分屏设备Settings设置图标分辨率要求58x58notificationStringiOS7设备通知栏图标分辨率要求20x20notification2xStringiOS7高分屏设备通知栏图标分辨率要求40x40
离线打包
离线打包需在原生工程中配置应用图标参考iOS原生工程配置
常见问题
iOS平台配置/更新图标后打包安装图标显示不正确
解决方案 iOS系统会缓存应用图标需要重启手机新图标才能生效
提交AppStore审核是报ITMS-90717错误
这是因为图片中包含透明信息即alpha通道完整错误提示如下
ERROR ITMS-90717: Invalid App Store Icon. The App Store Icon in the asset catalog in HBuilder.app cant be transparent nor contain an alpha channel.复制代码
解决方案 生成png图标文件时去掉alpha通道重新提交云端打包
启动界面
App启动时系统加载应用渲染首页需要一定的时间为了避免用户等待手机操作系统提供了特殊的启动界面设计让用户先看到一个简单的界面等应用加载完成后正式进入应用首页。
这个界面即被称为启动界面也成称为 splash 或 lauch screen。
启动界面选项
等待首页渲染完毕后再关闭Splash图
进入应用后启动界面在合适的时机会自动关闭并显示应用首页可在manifest.json文件中进行配置。
打开项目的manifest.json文件在“App启动界面配置”中的“启动界面选项”配置是否“等待首页渲染完毕后再关闭Splash图”
勾选“等待首页渲染完毕后再关闭Splash图”表示需要等待首页渲染完成后再关闭启动界面不勾选“等待首页渲染完毕后再关闭Splash图”则表示首页加载完成后就会关闭启动界面此时首页可能没有完成渲染在部分设备可能会闪一下白屏不推荐使用。
源码视图支持以下配置:
属性类型默认值描述最低版本alwaysShowBeforeRenderBooleantrue是否等待首页渲染完毕后再关闭启动界面1.6.0autocloseBooleantrue是否自动关闭启动界面仅当alwaysShowBeforeRender设置为false时生效如果需要手动关闭启动界面需将 alwaysShowBeforeRender 及 autoclose 均设置为 false。waitingBooleantrue是否在启动界面显示等待雪花
alwaysShowBeforeRender和autoclose属性组合设置可配置以下三种关闭启动界面splash策略
首页渲染完毕后自动关闭启动界面 App启动后自动检测首页渲染状态检测到首页渲染完成则自动关闭启动界面
app-plus : {splashscreen : {alwaysShowBeforeRender : true}
}复制代码
首页加载完成后自动关闭启动界面 App启动后不检测首页渲染状态当首页加载完成后自动关闭启动界面
app-plus : {splashscreen : {alwaysShowBeforeRender : false}
}复制代码
代码控制关闭启动界面 App启动后不会自动关闭启动界面需要在代码中调用plus.navigator.closeSplashscreen关闭启动界面。
app-plus : {splashscreen : {alwaysShowBeforeRender : false,autoclose : false,}
}复制代码
启动界面设置
启动界面原本是一个静态png图片方式。随着移动设备屏幕的多样化为了让每种屏幕启动时界面都不变形开发者需要为越来越多的屏幕尺寸制作不同的图片。这带来很多问题包括制作复杂、app包体积增大等。
HBuilderX中提供了以下启动界面方式
启动界面平台支持特点通用启动界面Android、iOS均支持。其中在iOS上通过storyboard实现简单自定义性弱、可适配不同屏幕自定义启动图Android支持同时支持使用.9.png图片iOS可以打包但从2020年6月30日起无法提交Appstore为了适配不同屏幕尺寸需要做大量图片自定义storyboard启动界面仅iOS支持HBuilderX2.8版本可适配不同屏幕 提示启动界面设置需提交云端打包后才能生效 通用启动界面
通用启动界面是一种简单、可适配不同屏幕的启动界面。它以app的logo、name为元素自动生成适配不同屏幕尺寸、适配不同OS要求的启动界面。
通用启动界面有着最低的门槛仅需要开发者为app在manifest里配好logo和name即可。并且符合任何应用商店的上线规范。它在iOS上就是通过storyboard实现的。 提示通用启动界面是为了方便开发者而设计的它不具有很强的灵活性如果开发者有较强的自定义需求Android平台请使用.9.png格式自定义启动图、iOS平台请使用自定义storyboard启动界面 Android平台通用启动界面
打开项目的manifest.json文件在“App启动界面配置”中的“Android启动界面设置”项下勾选“通用启动界面”
通用启动界面上部显示应用图标圆形裁剪外围显示进度图标下面为应用名称效果如下
iOS平台通用启动界面
打开项目的manifest.json文件在“App启动界面配置”中的“iOS启动界面设置”项下勾选“通用启动界面”
通用启动界面使用storyboard实现在界面上部显示应用图标无裁剪图标下面为应用名称效果如下
如果应用开启适配暗黑模式/夜间模式/深色模式则启动界面背景色会自动使用深色文字颜色自动使用白色。
自定义启动图
Android平台自定义启动图
打开项目的manifest.json文件在“App启动界面配置”中的“Android启动界面设置”项下勾选“自定义启动图”
Android平台使用.9.png启动图
目前HBuilderX中仅定义几种标准分辨率的启动图配置而实际上存在很多不同分辨率的手机导致启动图在一些不常见的设备会进行拉伸或压缩引起变形Android平台为了解决此问题就出现了可以适配各种尺寸的一种图片格式“.9.png”。这是一种特殊的图片格式它可以指定特定的区域进行拉伸而不失真。 使用.9.png的优点
避免在非标准分辨率手机上缩放变形可以只配置1张或多张图片适配更多分辨率减少apk的体积推荐至少配置1080P高分屏启动图片
.9.png图片和普通png图片的差异
.9.png图片和一般图片的区别在于.9.png图片有四条黑边而一般的图片没有这四条黑边就是用来拉伸和指定显示位置的使用.9.png图片后整个图片应该是包裹着你想要显示的内容的而没有使用的话整个图片将会被拉伸
制作.9.png图片
在Android sdk目录下的tools目录下有一个叫做draw9patch.bat的文件双击打开就可以使用最新android SDK该文件已经不存在若电脑不没有安装android studio可下载附件工具编辑.9.png图片使用android studio因为android studio已经集成.9.png制作工具只需选中需要生成的png文件然后右键点击create 9-patch file 选项
详细制作步骤可参考链接Android中.9图片的含义及制作教程 可以使用在线.9.png生成工具http://inloop.github.io/shadow4android/
.9.png配置使用 打开项目的manifest.json文件在“App启动界面配置”中的“Android启动界面设置”项下勾选“自定义启动图”在各分辨率启动图设置框选择需要使用的.9.png图片图片尺寸请按照提示尺寸对应上传保存后提交云端打包即可。 不同尺寸的启动图是为了适配不同分辨率的手机所以提交打包时请务必上传不同尺寸的启动图切忌上传多张同尺寸启动图 可以参考开发者在插件市场做好的.9样例工程
iOS平台自定义启动图 提示2020年6月30日起苹果AppStore审核要求应用在启动时不能使用启动图片必须改为使用Storyboard来制作启动界面如果需要提交AppStore请使用通用启动界面或自定义storyboard启动界面。 打开项目的manifest.json文件在“App启动界面配置”中的“iOS启动界面设置”项下勾选“自定义启动图”
自定义storyboard启动界面
Storyboard是Apple提供的一种简化的布局界面通过xml描述界面不能编程。 虽然无法制作非常灵活的界面但满足启动界面是没问题的比如设定背景色背景图、设定前景文字、图片的位置。 storyboard的优势是启动速度快。在App的真实首页被渲染完成前可以快速给用户提供一个基于Storyboard的启动屏。
制作storyboard文件
storyboard有两种制作方式 1. 直接使用模板文件(点击下载)中提供的相对常用的 storyboard 模板可在这个文件的基础上进行自定义不需要 Mac 及 XCode详情请查看附件中的 readme 教程 此 storyboard 文件适用于各种 iPhone 及 iPad 设备的横竖屏支持自定义界面元素包括
页面背景图片或背景颜色中间显示图片底部显示文字及颜色 注每一项都是可选的比如只显示背景图片只提供背景图片即可
- 使用xcode自行制作。xcode提供了可视化的制作storyboard的方式但依赖于mac电脑。在xcode中制作storyboard的教程请自行网络搜索请注意下面的注意事项。
HBuilderX需要的自定义storyboard文件格式为zip压缩包里面要求包含XCode使用的.storyboard文件以及.stroybard文件中使用的png图如下图所示
注意事项 zip压缩包中不要包含目录直接包含.storyboard和.png文件有且只有一个.storyboard文件.storyboard文件可以通过xcode生成也可以使用任何文本编辑器修改其源码比如对.storyboard文件点右键使用HBuilderX打开。它本质是一个xml文件。png文件名称中的2x和3x是适配不同分辨率的图片系统会自动根据设备dpi选择可参考这里为了避免png文件名称与应用中内置的文件名冲突建议以dc_launchscreen开头制作 storyboard 时请将图片资源直接拖到放工程中不要放到 imageset 里面并且图片命名要保证一定的唯一性可参考附件中的示例XCode中创建 storyboard 文件时页面元素添加约束时一定要相对于 Superview不然启动图到 loading页面过渡时页面会跳动或者变形
使用storyboard文件 打开项目的manifest.json文件在“App启动界面配置”中的“iOS启动界面设置”项下勾选“自定义storyboard启动界面”并选择自己制作的storyboard文件
权限配置 android权限配置 根据工业和信息化部关于开展APP侵害用户权益专项整治要求应用的隐私政策中需详细描述使用权限的用途。 应用发布时应该避免使用过多权限请根据应用实际功能需求配置权限。 Android平台云端打包使用的权限包括以下几个方面 默认使用的权限不做任何配置云端打包自动包含的权限参考默认使用的权限App使用模块依赖的权限也包含模块依赖三方SDK需要的权限参考App模块需要的权限manifest.json中配置额外添加的权限参考App配置添加权限App原生插件依赖的权限 如果希望去掉以上添加的某个权限请参考移除Android权限操作。 默认使用的权限 提交云端打包后会自动添加以下权限 uses-permission android:nameandroid.permission.INTERNET / uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE / uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE / uses-permission android:nameandroid.permission.READ_PHONE_STATE / uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE / uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE / uses-permission android:namecom.asus.msa.SupplementaryDID.ACCESS / uses-permission android:namecom.huawei.android.launcher.permission.CHANGE_BADGE / uses-permission android:nameandroid.permission.INSTALL_PACKAGES / uses-permission android:nameandroid.permission.REQUEST_INSTALL_PACKAGES /复制代码 权限说明 android.permission.INTERNET 使用网络权限应用基础权限android.permission.READ_EXTERNAL_STORAGE 和 android.permission.WRITE_EXTERNAL_STORAGE 读写SD卡权限系统授权提示未“访问设备上的照片、媒体内容和文件”可以参考这里配置应用启动时申请读写手机存储策略android.permission.READ_PHONE_STATE、ACCESS_NETWORK_STATE、ACCESS_WIFI_STATE 读取设备标识使用用于uni统计服务可以参考这里配置应用启动时申请访问设备信息权限策略android.permission.INSTALL_PACKAGES、android.permission.REQUEST_INSTALL_PACKAGES 安装apk需要的权限应用中使用plus.runtime.install升级应用则需要此权限 注意HBuilder2.6.3开始Goog Play渠道默认不再添加此权限因为GooglePlay审核规则禁止应用下载apk更新必须通过上传GooglePlay审核更新 特定权限说明 com.asus.msa.SupplementaryDID.ACCESS 获取设备标识信息oaid在华硕设备上需要用到的权限com.huawei.android.launcher.permission.CHANGE_BADGE 设置应用角标功能在华为设备上需要用到的权限com.android.launcher.permission.INSTALL_SHORTCUT 创建桌面快捷方式权限应用中使用plus.navigator.createShortcut创建桌面快捷方式则需要此权限com.android.launcher.permission.UNINSTALL_SHORTCUT 删除桌面快捷方式权限应用中使用native.js删除桌面快捷方式则需要此权限 App模块三方SDK的权限 提交云端打包时勾选使用三方SDK相关的功能模块时默认会自动添加三方SDK需要的所有权限。 为了保证三方SDK或模块的功能完整默认会添加可能需要的所有权限如果应用只用到三方SDK提供的部分功能需通过Android原生应用清单文件配置移除Android权限。 保存后提交云端打包生效。 注意HBuilderX中manifest.json文件的 “App权限配置” - “Android自动添加第三方SDK需要的权限” 复选框功能已失效即不勾选也会添加三方SDK需要的权限后续版本将会移除此配置项 App配置添加权限 打开项目的manifest.json文件在“App模块权限配置”页的“Android权限配置”项下根据需求勾选需要的权限
如果没有列出需要的权限可按以下方法手动添加 在manifest.json页面切换到“代码视图” uni-app项目 在 “app-plus” - “distribute” - “android” - “permissions” 下添加需要的权限如下 app-plus: {distribute: {android: {permissions: [ //这里添加需要的Android权限uses-permission android:name\android.permission.REQUEST_INSTALL_PACKAGES\/]//…},//…},//…复制代码 5 APPWAP2APP项目 在 “plus” - “distribute” - “google” - “permissions” 下添加需要的权限如下 app-plus: {distribute: {google: {permissions: [ //这里添加需要的Android权限uses-permission android:name\android.permission.REQUEST_INSTALL_PACKAGES\/]//…},//…},//…复制代码 App模块三方SDK的权限列表 Bluetooth(低功耗蓝牙) uses-permission android:name\android.permission.ACCESS_COARSE_LOCATION\ /,uses-permission android:name\android.permission.ACCESS_FINE_LOCATION\ /,uses-permission android:name\android.permission.BLUETOOTH_ADMIN\ /,uses-permission android:name\android.permission.BLUETOOTH\ /复制代码 Contact(通讯录) uses-permission android:name\android.permission.GET_ACCOUNTS\/,uses-permission android:name\android.permission.WRITE_CONTACTS\/,uses-permission android:name\android.permission.READ_CONTACTS\/复制代码 Fingerprint(指纹识别) uses-permission android:name\android.permission.USE_FINGERPRINT\/复制代码 FacialRecognitionVerify(实人认证) uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:nameandroid.permission.CAMERA /uses-permission android:nameandroid.permission.RECORD_AUDIO /uses-permission android:nameandroid.permission.FOREGROUND_SERVICE /uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE /uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE /复制代码 iBeacon uses-permission android:name\android.permission.ACCESS_COARSE_LOCATION\ /,uses-permission android:name\android.permission.ACCESS_FINE_LOCATION\ /,uses-permission android:name\android.permission.BLUETOOTH_ADMIN\ /,uses-permission android:name\android.permission.BLUETOOTH\ /复制代码 Maps(定位和地图) 高德地图 uses-permission android:name\android.permission.ACCESS_COARSE_LOCATION\ /,uses-permission android:name\android.permission.ACCESS_FINE_LOCATION\ /,uses-permission android:name\android.permission.ACCESS_NETWORK_STATE\ /,uses-permission android:name\android.permission.ACCESS_WIFI_STATE\ /,uses-permission android:name\android.permission.CHANGE_WIFI_STATE\ /,uses-permission android:name\android.permission.INTERNET\ /,uses-permission android:name\android.permission.READ_PHONE_STATE\ /,uses-permission android:name\android.permission.WRITE_EXTERNAL_STORAGE\ /,uses-permission android:name\android.permission.ACCESS_LOCATION_EXTRA_COMMANDS\ /,uses-permission android:name\android.permission.BLUETOOTH\ /,uses-permission android:name\android.permission.BLUETOOTH_ADMIN\ /复制代码 百度地图 uses-permission android:name\android.permission.ACCESS_COARSE_LOCATION\ /,uses-permission android:name\android.permission.ACCESS_FINE_LOCATION\ /,uses-permission android:name\android.permission.ACCESS_WIFI_STATE\ /,uses-permission android:name\android.permission.ACCESS_NETWORK_STATE\ /,uses-permission android:name\android.permission.CHANGE_WIFI_STATE\ /,uses-permission android:name\android.permission.READ_PHONE_STATE\ /,uses-permission android:name\android.permission.WRITE_EXTERNAL_STORAGE\ /,uses-permission android:name\android.permission.INTERNET\/,uses-permission android:name\android.permission.MOUNT_UNMOUNT_FILESYSTEMS\ /,uses-permission android:name\android.permission.READ_LOGS\ /,uses-permission android:name\android.permission.WRITE_SETTINGS\/复制代码 Messaging(短彩邮件消息) uses-permission android:name\android.permission.RECEIVE_SMS\/,uses-permission android:name\android.permission.SEND_SMS\/,uses-permission android:name\android.permission.WRITE_SMS\/,uses-permission android:name\android.permission.READ_SMS\/复制代码 OAuth(登录鉴权) 微信登录 uses-permission android:name\android.permission.MODIFY_AUDIO_SETTINGS\/复制代码 QQ登录 uses-permission android:name\android.permission.MODIFY_AUDIO_SETTINGS\/复制代码 新浪微博登录 无小米登录 无 Payment(支付) 支付宝支付 uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE /复制代码 微信支付 uses-permission android:name\android.permission.MODIFY_AUDIO_SETTINGS\/复制代码 Push(消息推送) uniPush !–个推通道必需权限 权限说明 https://docs.getui.com/getui/question/sdk/ –uses-permission android:name\android.permission.INTERNET\ /,uses-permission android:name\android.permission.READ_PHONE_STATE\ /,uses-permission android:name\android.permission.ACCESS_NETWORK_STATE\ /,uses-permission android:name\android.permission.CHANGE_WIFI_STATE\ /,uses-permission android:name\android.permission.ACCESS_WIFI_STATE\ /,uses-permission android:name\android.permission.RECEIVE_BOOT_COMPLETED\ /,uses-permission android:name\android.permission.WRITE_EXTERNAL_STORAGE\ /,uses-permission android:name\android.permission.VIBRATE\ /,uses-permission android:name\android.permission.GET_TASKS\ /,!–个推通道 可选权限 用于电子围栏 –uses-permission android:name\android.permission.BLUETOOTH\ /可选,uses-permission android:name\android.permission.BLUETOOTH_ADMIN\ /可选,uses-permission android:name\android.permission.ACCESS_FINE_LOCATION\ /可选,uses-permission android:name\android.permission.ACCESS_COARSE_LOCATION\ /可选,!–厂商通道必需权限 小米–uses-permission android:name\android.permission.BROADCAST_PACKAGE_ADDED\ /,uses-permission android:name\android.permission.BROADCAST_PACKAGE_CHANGED\ /,uses-permission android:name\android.permission.BROADCAST_PACKAGE_INSTALL\ /,uses-permission android:name\android.permission.BROADCAST_PACKAGE_REPLACED\ /,uses-permission android:name\android.permission.RESTART_PACKAGES\ /,uses-permission android:name\android.permission.CHANGE_NETWORK_STATE\ /,!–厂商通道必需权限 魅族–uses-permission android:name\android.permission.WRITE_SETTINGS\ /,!–厂商通道必需权限 华为–uses-permission android:name\android.permission.REQUEST_INSTALL_PACKAGES\ /复制代码 个推推送与uniPush一致 Share(分享) 微信分享 uses-permission android:name\android.permission.MODIFY_AUDIO_SETTINGS\/复制代码 QQ分享 uses-permission android:name\android.permission.MODIFY_AUDIO_SETTINGS\/复制代码 新浪微博分享 uses-permission android:name\android.permission.CHANGE_WIFI_STATE\ /,uses-permission android:name\android.permission.ACCESS_WIFI_STATE\ /,uses-permission android:name\android.permission.ACCESS_NETWORK_STATE\ /,uses-permission android:name\android.permission.INTERNET\ /,uses-permission android:name\android.permission.WRITE_EXTERNAL_STORAGE\ /复制代码 Speech(语音识别) 百度语音识别 uses-permission android:name\android.permission.RECORD_AUDIO\ /,uses-permission android:name\android.permission.INTERNET\ /,uses-permission android:name\android.permission.ACCESS_NETWORK_STATE\ /,uses-permission android:name\android.permission.ACCESS_WIFI_STATE\ /,uses-permission android:name\android.permission.CHANGE_NETWORK_STATE\ /,uses-permission android:name\android.permission.READ_PHONE_STATE\ /,uses-permission android:name\android.permission.WRITE_EXTERNAL_STORAGE\ /复制代码 讯飞语音识别 uses-permission android:name\android.permission.RECORD_AUDIO\ /,uses-permission android:name\android.permission.INTERNET\ /,uses-permission android:name\android.permission.ACCESS_NETWORK_STATE\ /,uses-permission android:name\android.permission.ACCESS_WIFI_STATE\ /,uses-permission android:name\android.permission.CHANGE_NETWORK_STATE\ /,uses-permission android:name\android.permission.READ_PHONE_STATE\ /,uses-permission android:name\android.permission.WRITE_EXTERNAL_STORAGE\ /复制代码 Static(统计) 友盟统计 uses-permission android:name\android.permission.READ_LOGS\ /,uses-permission android:name\android.permission.RECEIVE_BOOT_COMPLETED\ /,uses-permission android:name\android.permission.RECEIVE_USER_PRESENT\ /复制代码 uni-AD 穿山甲GroMore广告联盟 uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE/uses-permission android:nameandroid.permission.INTERNET/uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE/uses-permission android:nameandroid.permission.SYSTEM_ALERT_WINDOW/uses-permission android:nameandroid.permission.VIBRATE/uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE/uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE/uses-permission android:nameandroid.permission.CHANGE_WIFI_STATE/uses-permission android:nameandroid.permission.WAKE_LOCK/复制代码 腾讯优量汇广告联盟 uses-permission android:nameandroid.permission.CHANGE_NETWORK_STATE /uses-permission android:nameandroid.permission.ACCESS_COARSE_LOCATION /uses-permission android:nameandroid.permission.REQUEST_INSTALL_PACKAGES /uses-permission android:nameandroid.permission.QUERY_ALL_PACKAGES /uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE /uses-permission android:nameandroid.permission.REORDER_TASKS /uses-permission android:nameandroid.permission.VIBRATE /复制代码 快手广告联盟 uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.READ_PHONE_STATE /uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE /uses-permission android:nameandroid.permission.REQUEST_INSTALL_PACKAGES /uses-permission android:nameandroid.permission.VIBRATE /复制代码 快手内容联盟 uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.READ_PHONE_STATE /uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE /uses-permission android:nameandroid.permission.REQUEST_INSTALL_PACKAGES /uses-permission android:nameandroid.permission.SET_WALLPAPER /uses-permission android:nameandroid.permission.ACCESS_COARSE_LOCATION /uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE /uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE /uses-permission android:nameandroid.permission.BLUETOOTH /uses-permission android:nameandroid.permission.VIBRATE /复制代码 百度广告联盟 无 sigmob广告联盟 uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE /uses-permission android:nameandroid.permission.READ_PHONE_STATE /uses-permission android:nameandroid.permission.REQUEST_INSTALL_PACKAGES /复制代码 华为广告联盟 uses-permission android:nameandroid.permission.BROADCAST_STICKY /uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE /uses-permission android:nameandroid.permission.QUERY_ALL_PACKAGES /uses-permission android:nameandroid.permission.REQUEST_INSTALL_PACKAGES /复制代码 Pangle(海外穿山甲) uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE /uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /复制代码 google AdMob uses-permission android:nameandroid.permission.WAKE_LOCK /uses-permission android:nameandroid.permission.RECEIVE_BOOT_COMPLETED /uses-permission android:nameandroid.permission.FOREGROUND_SERVICE /uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:namecom.google.android.gms.permission.AD_ID /复制代码 相关参考 Android官方权限说明参考https://developer.android.google.cn/guide/topics/permissions/overviewAndroid官方权限常量文档参考[https://developer.android.google.cn/reference/android/Manifest.permission] manifest.json 源码视图 manifest.json 文件是应用的配置文件用于指定应用的名称、图标、权限等。HBuilderX 创建的工程此文件在根目录CLI 创建的工程此文件在 src 目录。 配置项列表 属性类型默认值描述最低版本nameString应用名称appidString新建 uni-app 项目时DCloud 云端分配。用途详见应用标识descriptionString应用描述localeStringauto设置当前默认语言具体参考 localeversionNameString版本名称例如1.0.0。详见下方Tips说明versionCodeNumber版本号例如36transformPxBooleantrue是否转换项目的px为true时将px转换为rpx为false时px为传统的实际像素。为兼容历史项目默认值为 true。 此选项已废弃仅部分平台支持不推荐新项目启用此配置新建项目模板一般配置为 falsenetworkTimeoutObject网络超时时间详见debugBooleanfalse是否开启 debug 模式开启后调试信息以 info 的形式给出其信息有页面的注册页面路由数据更新事件触发等uniStatisticsObject是否开启 uni 统计全局配置2.2.3app-plusObjectApp 特有配置h5ObjectH5 特有配置quickappObject快应用特有配置即将支持mp-weixinObject微信小程序特有配置mp-alipayObject支付宝小程序特有配置mp-baiduObject百度小程序特有配置mp-toutiaoObject抖音小程序特有配置1.6.0mp-larkObject飞书小程序特有配置3.2.12mp-qqObjectqq 小程序特有配置2.1.0mp-kuaishouObject快手小程序特有配置3.2.2 Tips uni-app 的 appid 由 DCloud 云端分配主要用于 DCloud 相关的云服务请勿自行修改。详见注意区分 uni-app 的 appid 与微信小程序、iOS 等其它平台分配的 appid以及第三方 SDK 的 appid。versionName在云打包App和生成wgt应用资源时会使用。如需升级App版本先修改此处再云打包。导出wgt资源用于离线打包和热更新时也会以此版本为依据。在本地打包时和热更新时App版本和wgt应用资源版本将不再保持一致。此时通过plus.runtime.version可获取App版本通过plus.runtime.getProperty获取wgt资源版本。 networkTimeout 各类网络请求的超时时间单位均为毫秒。 属性类型必填默认值说明requestNumber否60000uni.request 的超时时间单位毫秒。connectSocketNumber否60000uni.connectSocket 的超时时间单位毫秒。uploadFileNumber否60000uni.uploadFile 的超时时间单位毫秒。downloadFileNumber否60000uni.downloadFile 的超时时间单位毫秒。 自HBuilderX 2.5.10起上述默认超时时间由6秒改为60秒对齐微信小程序平台。 uniStatistics uni 统计配置项 属性类型必填默认值说明enableBoolean是true是否开启uni统计 app-plus 属性类型说明最低版本splashscreenObjectApp 启动界面信息详见screenOrientationArray重力感应、横竖屏配置可取值“portrait-primary”竖屏正方向“portrait-secondary”竖屏反方向“landscape-primary”横屏正方向“landscape-secondary”横屏反方向。modulesObject权限模块详见distributeObjectApp 发布信息详见nvueCompilerString切换 nvue 编译模式可选值weex 老编译模式uni-app 新编译模式默认为 weex 。编译模式区别详情2.0.3nvueStyleCompilerString切换 nvue 样式编译模式可选值weex 老编译模式uni-app 新编译模式默认为 weex 。编译模式区别详情3.1.1rendererString可不加载基于 webview 的运行框架减少包体积、提升启动速度。可选值 nativeApp-nvue 2.2.0nvueLaunchModeStringNvue 首页启动模式可选值normal、fast 默认 normalHBuilderX 2.4.4-2.4.9 固定为 fast 详见2.5.0nvueObjectnvue 页面布局初始配置详见2.0.3optimizationObject分包配置可以减轻启动时加载的js数量提升启动速度2.7.12runmodeStringnormal默认模式liberate资源释放模式uniStatisticsObjectApp 是否开启 uni 统计配置方法同全局配置2.2.3webViewObject当系统webview低于指定版本时会弹出提示。或者下载x5内核后继续启动仅Android支持详情3.5.0 PS上表只列出了核心部分App平台的配置其实非常多完整内容请参考 完整的 manifest.json。 Tips manifest.json 文件的配置推荐在 HBuilderX 提供的可视化操作界面完成。部分配置在打包时的操作界面补全例如证书等信息。Native.js 权限部分会根据配置的模块权限在打包后自动填充。部分 modules 是默认的不需要进行配置。微信小程序的 appid 等信息需要配置在 mp-weixin 节点下。不要配置在 app-plus下。sdkConfigs 下出现的 weixin 节点配置的是 App 的第三方 SDK 信息。 App Splashscreen splash启动封面是App必然存在的、不可取消的。 属性类型默认值描述最低版本alwaysShowBeforeRenderBooleantrue是否等待首页渲染完毕后再关闭启动界面1.6.0autocloseBooleantrue是否自动关闭启动界面仅当alwaysShowBeforeRender设置为false时生效如果需要手动关闭启动界面需将 alwaysShowBeforeRender 及 autoclose 均设置为 false。waitingBooleantrue是否在程序启动界面显示等待圈或雪花 alwaysShowBeforeRender和autoclose属性组合设置可配置以下三种关闭启动界面splash策略详见 注意 如果不配置自己的splash图App端会默认把App的icon放到splash中splash只能是标准png不要用jpg改名为png。也不支持gif等动画相关改动云打包生效真机运行不生效。本地打包需自行在原生工程中配置App启动图中iOS的MAX等大屏设备的splash图若不配会导致iOS认为此App没有为MAX优化App将无法全屏四周会有黑边Android的splash支持.9.png详见 App Modules 模块选择是为了控制App的包体积不需要的模块可以在打包时剔除。 名称描述BluetoothBLE蓝牙Contacts系统通讯录Fingerprint指纹识别iBeaconiBeaconLivePusher直播推流Maps地图Messaging短彩邮件消息OAuth登录授权Payment支付Push消息推送Share社交分享Speech语音识别SQLiteSQLite数据库Statistic统计VideoPlayer视频播放 注意 仅App云打包生效。本地打包需自行在原生工程中配置。 App Distribute 属性类型描述androidObjectAndroid 应用配置详见: Android配置明细iosObjectiOS 应用配置详见: iOS配置明细sdkConfigsObjectSDK配置仅打包生效 详见orientationArray同 screenOrientation 配置仅打包生效已废弃推荐使用 screenOrientation App SdkConfigs 三方原生SDK配置。三方SDK的使用需要向这些SDK提供商申请并配置参数到此处。可在HBuilderX可视化界面App SDK配置输入配置此配置仅云打包后生效本地打包需自行在原生工程中配置。 属性类型描述oauthObject授权登录配置后可调用 uni.login 进行登录操作目前支持的授权登录平台有QQ、微信、新浪微博。shareObject分享配置后可调用 uni.share 进行分享目前支持QQ、微信、新浪微博等分享 具体配置 详见。pushObjectpush配置使用方式 详见目前支持uniPush、个推注意App仅支持一种 push 方式配置多个 push 无效建议使用 uniPush支持多厂商推送。paymentObject三方支付配置配置后可调用 uni.payment 进行支付目前支持微信支付、支付宝支付、苹果内购 具体配置 详见。staticsObject统计配置目前仅支付友盟统计详见在uni-app中只用 plus.statistic 进行调用。speechObject语音识别配置支持讯飞语音、百度语音详见在uni-app中只用 plus.speech 进行调用。mapsObject原生地图配置目前仅支持 高德地图申请方式可参考地图插件配置。 optimization 可以减轻启动时加载的js数量提升启动速度。 从uni-app 2.7.12 开始App-vue平台也兼容了小程序的分包配置但默认并不开启。 在manifest配置以下节点可以在App端启动分包。 属性类型说明subPackagesBoolean是否开启分包优化目前仅 uni-app vue2 下生效 {app-plus: {optimization: {subPackages: true},runmode : liberate // 开启分包优化后必须配置资源释放模式} }复制代码 在manifest中启动分包后需要在pages.json中配置具体的分包规则与小程序的配置相同详见https://uniapp.dcloud.io/collocation/pages?idsubpackages 也就是一旦在pages.json里配置分包小程序一定生效而app是否生效取决于manifest里是否开启。 注意: App开启分包后每个分包单独编译成一个js文件(都包含在app内不会联网下载)当App首页是vue时可减小启动加载文件大小提升启动速度。首页是nvue时分包不会提升启动速度nvue本身启动速度就快于vue也快于开启分包后的首页为vue的应用。如果追求极致启动速度还是应该使用nvue做首页并在manifest开启fast模式。App页面较少时分包对启动速度的优化不明显。 nvue nvue 页面布局初始设置 属性类型描述flex-directionStringflex 成员项的排列方向支持项row从左到右 row-reverse从右到左column从上到下column-reverse与 column 相反默认值 column。 webview uni-app 3.5.0 当App代码使用了低版本webview不支持的语法时比如使用了vue3可以在manifest配置本属性来指定最低运行的webview版本。 当系统webview版本不符合需求时uni-app引擎会自动弹框。同时开发者可以指定使用 x5引擎webview 来替代系统webview以保障浏览器兼容性。详见x5文档 当你的应用强依赖x5时比如需要vue页面的字体和tabbar等原生界面保持一致时也可以在manifest配置本属性。 属性类型说明minUserAgentVersionString最小webview版本例如64.0.3282.116。当低于最小版本要求时显示 WebView版本过低 弹框点击确定退出应用。x5Object此属性需要在manifest模块配置中勾选 Android X5 Webview 模块详细参见下面的说明 x5 属性说明 属性类型默认值说明timeOutNumber3000超时时间showTipsWithoutWifiBooleanfalse是否在非WiFi网络环境时显示用户确认下载x5内核的弹窗。如果为true时在非WiFi网络下载x5模块会显示用户确认弹框内容为 当前处于非WiFi网络是否允许下载x5模块 false时不显示弹框 。allowDownloadWithoutWiFiBooleanfalse是否允许用户在非WiFi网络时进行x5内核的下载。如果为true就不会显示用户确认的弹窗。false时如果showTipsWithoutWifi为true就会显示用户确认弹框showTipsWithoutWifi为false时不下载x5模块。 webview示例 {app-plus : {webView: {minUserAgentVersion: 64.0.3282.116,x5: {timeOut: 3000,showTipsWithoutWifi: true,allowDownloadWithoutWiFi: false}}} }复制代码 提示vue3 vue页面 要求 Android 系统 webview 最低版本为 64.0.3282.116 h5 属性类型说明titleString页面标题默认使用 manifest.json 的 nametemplateStringindex.html 模板路径相对于应用根目录可定制生成的 html 代码。参考自定义模板, Vue2 支持Vue3 暂不支持routerObject参考routerasyncObject参考asyncdevServerObject开发环境 server 配置参考devServerpublicPathString引用资源的地址前缀仅 Vue2 发布时生效。参考publicPathsdkConfigsStringSDK配置例如地图… 参考sdkConfigsoptimizationObject打包优化配置HBuilderX 2.1.5 以上支持参考optimizationuniStatisticsObjectH5 是否开启 uni 统计配置方法同全局配置 自定义模板 目前 Vue2 支持 Vue3 暂不支持 需要使用自定义模板的场景通常有以下几种情况 调整页面 head 中的 meta 配置补充 SEO 相关的一些配置仅首页加入百度统计等三方js 使用自定义模板时1. 工程根目录下新建一个html文件2. 复制下面的基本模板内容到这个html文件在此基础上修改meta和引入js3. 在 manifest.json-h5-template 节点中关联这个html文件的路径。 !DOCTYPE html html langzh-CNheadmeta charsetutf-8meta http-equivX-UA-Compatible contentIEedgetitle% htmlWebpackPlugin.options.title %/title!– Open Graph data –!– meta propertyog:title contentTitle Here / –!– meta propertyog:url contenthttp://www.example.com/ / –!– meta propertyog:image contenthttp://example.com/image.jpg / –!– meta propertyog:description contentDescription Here / –scriptvar coverSupport CSS in window typeof CSS.supports function (CSS.supports(top: env(a)) || CSS.supports(top: constant(a)))document.write(meta nameviewport contentwidthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0 (coverSupport ? , viewport-fitcover : ) /)/scriptlink relstylesheet href% BASE_URL %static/index.% VUE_APP_INDEX_CSS_HASH %.css //headbodynoscriptstrongPlease enable JavaScript to continue./strong/noscriptdiv idapp/div!– built files will be auto injected –/body /html复制代码 在hello uni-app示例中有一个template.h5.html文件即是此用途。 关于SEO的补充说明 H5平台是SPA单页应用普通的SEO信息即加meta字段只能在自定义的模板html里配置首页。 但SEO的时代在变现在更有效的方式使用uni-app同时发布一版百度小程序这个搜索权重更高。DCloud的ask社区的H5版也是uni-app做的同时发布了百度小程序权重更高每天来自百度的搜索量非常多。是一个可现身说法的好案例。 router 属性类型默认值说明modeStringhash路由跳转模式支持 hash、historybaseString/应用基础路径例如如果整个单页应用服务在 /app/ 下然后 base 就应该设为 “/app/”支持设置为相对路径 “./” 注意 history 模式部分浏览器器不支持iOS微信内置浏览器无法观测到URL变动默认分享不使用微信JSSDK的情况下的链接为入口页链接。history 模式发行需要后台配置支持详见history 模式的后端配置 async 属性类型默认值说明loadingStringAsyncLoading页面 js 加载时使用的组件需注册为全局组件errorStringAsyncError页面 js 加载失败时使用的组件需注册为全局组件delayNumber200展示 loading 加载组件的延时时间页面 js 若在 delay 时间内加载完成则不会显示 loading 组件timeoutNumber60000页面 js 加载超时时间超时后展示 error 对应的组件 devServer 属性类型默认值说明httpsBooleanfalse启用 https 协议portNumberVue2 8080Vue3 3000前端开发服务端口disableHostCheckBooleanfalse禁用 Host 检查 Tipsuni-app 中 manifest.json-h5-devServervue2 实际上对应 webpack 的 devServervue3 实际上对应 vite 的 server鉴于 manifest 为 json 文件故 webpack.config.js-devServer 及 vite.config.js-server 配置项下的简单类型属性均可在manifest.json-h5-devServer节点下配置funciton 等复杂类型暂不支持。 publicPath 配置 publicPath 为 cdn 资源地址前缀这样编译出来的 html 文件引用的 jscss 路径会自动变成 cdn 上的地址。 注意如果想对图片生效image组件的图片地址需要使用相对路径 示例 以 hello-uniapp 发布 H5 时为例 未配置 publicPath 时发布时 index.html 中的结果 script src/h5/static/js/chunk-vendors.803ce52d.js/script script src/h5/static/js/index.34e8497d.js复制代码 配置 publicPath 为 https://www.cdn.com/h5/无效地址仅用作示例 后发布时 index.html 中的结果 script srchttps://www.cdn.com/h5/static/js/chunk-vendors.803ce52d.js/script script srchttps://www.cdn.com/h5/static/js/index.34e8497d.js复制代码 注意 打包部署后在服务器上开启 gzip 可以进一步压缩文件。具体的配置可以参考网上的分享https://juejin.im/post/5af003286fb9a07aac24611b sdkconfig 三方SDK配置。三方SDK的使用需要向这些SDK提供商申请并配置参数到此处。可在HBuilderX可视化界面H5 配置输入配置。 属性类型描述mapsObject地图或位置相关SDK maps 地图服务商 SDK 配置使用地图以及位置IP 定位及坐标转换需要配置此项。 示例 { h5: {sdkConfigs: {// 使用地图或位置相关功能必须填写其一maps: {qqmap: {// 腾讯地图秘钥 https://lbs.qq.com/dev/console/key/managekey: },google: {// 谷歌地图秘钥HBuilderX 3.2.10https://developers.google.com/maps/documentation/javascript/get-api-keykey: },amap: {// 高德地图秘钥HBuilderX 3.6.0https://console.amap.com/dev/key/appkey: ,// 高德地图安全密钥HBuilderX 3.6.0https://console.amap.com/dev/key/appsecurityJsCode: ,// 高德地图安全密钥代理服务器地址HBuilderX 3.6.0https://lbs.amap.com/api/jsapi-v2/guide/abc/prepareserviceHost: ,},bmap: {// 百度地图秘钥HBuilderX 3.99http://lbsyun.baidu.com/apiconsole/key#/homekey: }}} } }复制代码 optimization 属性类型默认值说明prefetchBooleanfalse资源预取preloadBooleanfalse资源预加载treeShakingObject摇树优化根据项目需求动态打包框架所需的组件及API保持框架代码最精简化参考treeShaking treeShaking 属性类型默认值说明enableBooleanfalse是否启用摇树优化 示例 {h5: {optimization: {treeShaking: {enable: true}}} }复制代码 Tips关于摇树优化treeShaking原理及优化结果参考https://ask.dcloud.net.cn/article/36279 mp-weixin 属性类型说明appidString微信小程序的AppID登录 https://mp.weixin.qq.com 申请settingObject微信小程序项目设置参考settingfunctionalPagesBoolean微信小程序是否启用插件功能页默认关闭requiredBackgroundModesArray微信小程序需要在后台使用的能力,详见pluginsObject使用到的插件详见resizableBoolean在iPad上小程序是否支持屏幕旋转默认关闭navigateToMiniProgramAppIdListArray需要跳转的小程序列表详见permissionObject微信小程序接口权限相关设置比如申请位置权限必须填此处详见workersStringWorker 代码放置的目录。 详见optimizationObject对微信小程序的优化配置cloudfunctionRootString配置云开发目录参考settinguniStatisticsObject微信小程序是否开启 uni 统计配置方法同全局配置scopedSlotsCompilerStringVue2 作用域插槽编译模式uni-app 3.1.19 开始支持可选legacy、auto、augmented默认automergeVirtualHostAttributesBoolean合并组件虚拟节点外层属性目前仅支持 style、class 属性uni-app 3.5.1 开始支持slotMultipleInstanceBoolean模拟单个作用域插槽渲染为多个实例此配置仅限 Vue2 环境 3.7.12Vue3 环境已默认支持embeddedAppIdListArray要半屏跳转的小程序appid。详见requiredPrivateInfosArray地理位置相关接口。详见lazyCodeLoadingString目前仅支持值 requiredComponents代表开启小程序按需注入特性详见 setting 编译到微信小程序平台下的项目设置。 属性类型说明urlCheckBoolean是否检查安全域名和 TLS 版本es6BooleanES6 转 ES5postcssBoolean上传代码时样式是否自动补全minifiedBoolean上传代码时是否自动压缩bigPackageSizeSupportBoolean预览及真机调试时包体积上限是否调整为4M默认为trueHBuilderX 3.5.5。 注意: 使用微信小程序手势组件会强制开启 ES6 转 ES5 optimization 对微信小程序的优化配置 属性类型说明subPackagesBoolean是否开启分包优化 cloudfunctionRoot 如果需要使用微信小程序的云开发需要在 mp-weixin 配置云开发目录 mp-weixin:{// …cloudfunctionRoot: cloudfunctions/, // 配置云开发目录// … }复制代码 配置目录之后需要在项目根目录新建 vue.config.js 配置对应的文件编译规则 {plugins: [new CopyWebpackPlugin([{from: path.join(dirname, ../cloudfunctions),to: path.join(dirname, unpackage, dist, process.env.NODE_ENV production ? build : dev, process.env.UNI_PLATFORM, cloudfunctions),},]),], }复制代码 mp-alipay 属性类型说明pluginsObject使用到的插件详见component2Boolean是否启用 component2 编译默认为true查看详情enableAppxNgBoolean是否启用 enableAppxNg 小程序基础库 2.x 构建默认为true查看详情HBuilderX 3.2.10axmlStrictCheckBoolean是否启用 axml 严格语法检查默认为falseenableParallelLoaderBoolean是否启用多进程编译默认为falseenableDistFileMinifyBoolean是否压缩编译产物仅在真机预览/真机调试时生效默认为falseuniStatisticsObject支付宝小程序是否开启 uni 统计配置方法同全局配置scopedSlotsCompilerStringVue2 作用域插槽编译模式uni-app 3.1.19 开始支持可选legacy、auto、augmented默认automergeVirtualHostAttributesBoolean合并组件虚拟节点外层属性目前仅支持 style、class 属性uni-app 3.5.1 开始支持slotMultipleInstanceBoolean模拟单个作用域插槽渲染为多个实例此配置仅限 Vue2 环境 3.7.12Vue3 环境已默认支持lazyCodeLoadingString是否开启代码按需执行。styleIsolationString组件样式隔离方式默认值为 apply-shared具体配置 详见。 uni-app 3.99 开始支持 mp-baidu 属性类型说明appidString百度小程序的 AppID登录 https://smartprogram.baidu.com/docs/introduction/enter_application/ 申请requiredBackgroundModesArray小程序需要在后台使用的能力目前支持背景音频播放“requiredBackgroundModes”: [“audio”]详见prefetchesArray预请求的所有url的列表详见optimizationObject对百度小程序的优化配置uniStatisticsObject百度小程序是否开启 uni 统计配置方法同全局配置scopedSlotsCompilerStringVue2 作用域插槽编译模式uni-app 3.1.19 开始支持可选legacy、auto、augmented默认autoslotMultipleInstanceBoolean模拟单个作用域插槽渲染为多个实例此配置仅限 Vue2 环境 3.7.12Vue3 环境已默认支持dynamicLibObject引入动态库详情请参考使用动态库 optimization 对百度小程序的优化配置 属性类型说明subPackagesBoolean是否开启分包优化 mp-toutiao 属性类型说明appidString抖音小程序的 AppID登录 https://microapp.bytedance.com/ 申请settingObject抖音小程序项目设置参考抖音小程序项目设置navigateToMiniProgramAppIdListArray需要跳转的小程序列表详见uniStatisticsObject抖音小程序是否开启 uni 统计配置方法同全局配置scopedSlotsCompilerStringVue2 作用域插槽编译模式uni-app 3.1.19 开始支持可选legacy、auto、augmented默认autoslotMultipleInstanceBoolean模拟单个作用域插槽渲染为多个实例此配置仅限 Vue2 环境 3.7.12Vue3 环境已默认支持 抖音小程序项目设置 属性类型说明urlCheckBoolean是否检查安全域名和 TLS 版本es6BooleanES6 转 ES5postcssBoolean上传代码时样式是否自动补全minifiedBoolean上传代码时是否自动压缩 mp-lark 属性类型说明appidString飞书小程序的 AppID登录 https://open.feishu.cn 申请settingObject飞书小程序项目设置参考飞书小程序项目设置uniStatisticsObject飞书小程序是否开启 uni 统计配置方法同全局配置scopedSlotsCompilerStringVue2 作用域插槽编译模式uni-app 3.1.19 开始支持可选legacy、auto、augmented默认autoslotMultipleInstanceBoolean模拟单个作用域插槽渲染为多个实例此配置仅限 Vue2 环境 3.7.12Vue3 环境已默认支持 飞书小程序项目设置 属性类型说明urlCheckBoolean是否检查安全域名和 TLS 版本es6BooleanES6 转 ES5postcssBoolean上传代码时样式是否自动补全minifiedBoolean上传代码时是否自动压缩 mp-qq 属性类型说明appidStringqq 小程序的 AppID登录 https://q.qq.com 申请requiredBackgroundModesArray小程序需要在后台使用的能力目前支持背景音频播放“requiredBackgroundModes”: [“audio”]详见navigateToMiniProgramAppIdListArray需要跳转的小程序列表详见permissionObject小程序接口权限相关设置比如申请位置权限必须填此处详见workersStringWorker 代码放置的目录。 详见groupIdListString Array需要打开群资料卡的群号列表详见button的open-typeoptimizationObject对QQ小程序的优化配置uniStatisticsObjectQQ小程序是否开启 uni 统计配置方法同全局配置scopedSlotsCompilerStringVue2 作用域插槽编译模式uni-app 3.1.19 开始支持可选legacy、auto、augmented默认autoslotMultipleInstanceBoolean模拟单个作用域插槽渲染为多个实例此配置仅限 Vue2 环境 3.7.12Vue3 环境已默认支持 optimization 对QQ小程序的优化配置 属性类型说明subPackagesBoolean是否开启分包优化 mp-kuaishou 属性类型说明appidString快手小程序的 AppID登录 https://mp.kuaishou.com 申请optimizationObject对快手小程序的优化配置uniStatisticsObject快手小程序是否开启 uni 统计配置方法同全局配置scopedSlotsCompilerStringVue2 作用域插槽编译模式uni-app 3.1.19 开始支持可选legacy、auto、augmented默认augmentedslotMultipleInstanceBoolean模拟单个作用域插槽渲染为多个实例此配置仅限 Vue2 环境 3.7.12Vue3 环境已默认支持 optimization 对快手小程序的优化配置 属性类型说明subPackagesBoolean是否开启分包优化 自定义小程序项目配置 HBuilderX 3.6.16 支持项目根目录(cli 项目为 src 目录)下创建配置文件自定义小程序项目配置。平台对应文件名如下 小程序平台文件名微信project.config.jsonQQproject.config.json百度project.swan.json支付宝mini.project.json抖音project.tt.json飞书project.lark.json快手project.ks.json京东project.config.json 关于分包优化的说明 在对应平台的配置下添加optimization:{subPackages:true}开启分包优化目前只支持mp-weixin、mp-qq、mp-baidu、mp-toutiao、mp-kuaishou的分包优化分包优化具体逻辑 静态文件分包下支持 static 等静态资源拷贝即分包目录内放置的静态资源不会被打包到主包中也不可在主包中使用js文件当某个 js 仅被一个分包引用时该 js 会被打包到该分包内否则仍打到主包即被主包引用或被超过 1 个分包引用自定义组件若某个自定义组件仅被一个分包引用时且未放入到分包内编译时会输出提示信息
分包内静态文件示例 subPackages: [{root: pages/sub,pages: [{path: index/index}] }]复制代码 以上面的分包为例放在每个分包root对应目录下的静态文件会被打包到此分包内。 快应用 属性类型说明iconString应用图标华为推荐 192x192packageString应用包名minPlatformVersionNumber最小平台运行支持(华为最低 1070vivo 1063)versionNameString版本名称versionCodeNumber版本号 manifest.json配置 {quickapp-webview: {// 快应用通用配置icon: /static/logo.png,package: com.example.demo,versionName: 1.0.0,versionCode: 100},quickapp-webview-union: {// 快应用联盟目前仅支持 vivo、oppominPlatformVersion: 1063 //最小平台支持},quickapp-webview-huawei: {// 快应用华为minPlatformVersion: 1070 //最小平台支持} }复制代码 FAQ QiOS 应用调用相机等权限时弹出的提示语如何修改 A在 manifest.json 可视化界面-App模块权限配置-iOS隐私信息访问的许可描述 安心打包使用指南 过去App云端打包时需要将应用代码、打包证书等提交到DCloud云端打包机在云端打包机的原生开发环境中生成安装包apk/ipa。 DCloud云端服务器虽然不会保存开发者应用代码和证书等信息但开发者可能还是不放心或者担心在网络传输过程中可能存在拦截泄漏的风险。 而离线打包不但不方便还有2个重要功能无法使用 原生混淆保护js代码因为秘钥的安全问题离线打包无法使用插件市场的付费原生插件因为插件版权问题离线打包无法使用 HBuilderX2.9.9版本新增Android平台安心打包功能不再提交应用代码及打包证书到云端服务器同时也减轻云端打包机压力缩短高峰期云端打包等待时间。 HBuilderX3.0.7版本新增iOS平台支持安心打包功能仅支持MacOS 安心打包原理 首次打包 HBuilderX会提交App的模块配置信息到云端在云端打包机生成原生代码包不包含应用代码、证书信息HBuilderX下载原生代码包在本地电脑上将应用代码添加到原生代码包中生成未签名安装包缓存原生代码包用于下次打包复用在本地电脑上使用打包证书对未签名安装包进行签名操作生成安装包 非首次打包 HBuilderX判断缓存的原生代码包是否可以复用如果没有修改App模块配置或影响原生代码包配置操作继续下一步否则转首次打包流程以下情况也会触发首次打包流程 使用了uni原生插件本地无法判断原生插件是否更新了因此项目中只要包含uni原生插件都会走首次打包流程HBuilderX更新本地缓存原生代码包需要更新需要走首次打包流程生成新版本原生代码包 将修改后的应用代码添加到原生代码包中生成未签名安装包在本地电脑上使用打包证书对未签名安装包进行签名操作生成安装包
因为大多数打包并不改动原生部分主要是manifest.json只修改前端代码。此时将无需从云端打包机下载原生包打包速度会非常快。 安心打包优势 更安全打包时不提交应用代码、证书等信息更快速非首次打包时不用提交云端打包机排队等待本地直接出包省流量减少了打包时提交打包资源非首次打包时不用下载原生代码包更便宜除非使用了体积很大的本地原生插件否则将难以突破40M的免费打包体积阀值。开发者和DCloud的成本双下降 使用安心打包 新版本HBuilderX云端打包时无需额外操作默认会勾选“安心打包”如下图所示 如果没有安装安心打包插件会弹出以下提示框点击“安装”继续 插件安装完成后需重新点击“打包”按钮提交打包 打包完成后自动保存到项目的unpackage/release/apk/目录 如果清空了这个目录那么下次打包将执行首次打包逻辑。 注意事项 Windows环境仅Android平台支持安心打包iOS暂不支持MacOSX环境Android和ios都支持安心打包。自定义调试基座不支持安心打包使用DCloud老版证书不支持安心打包使用原生混淆时配置的待加密js文件需要提交到云端打包机打包完成后自动清除这些js安心打包并非纯离线打包虽然证书和前端代码不再提交云端打包机但项目的manifest中的模块配置、本地原生插件、原生混淆配置的前端文件仍需提交才能出包iOS平台安心打包无法兼容swift如果uni原生插件使用swift开发提交appstore提示“ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.”错误时请改用传统打包 FAQ 安心打包是否有免费打包次数限制 打包次数限制是为了避免部分开发者过多占用云端打包资源而增加的限流措施在使用安心打包时由非首次打包机制生成的安装包由于不占用云端打包资源所以不会占用云端免费打包次数也可以理解为安心打包的非首次打包无打包次数限制。 Android 安心打包问题汇总 Q1: Windows控制台提示打包成功相应目录下没有apk文件 ** 问题** 某些用户反馈windows电脑控制台提示Android安心打包成功进入相应目录(unpackage/release/apk)目录下找不到apk文件 ** 原因** unpackage/release/apk目录没有写入权限移动apk文件失败了。 ** 解决方法** 赋予unpackage/release/apk目录写入权限重启电脑试试 Q2: fakeLogOpen(/dev/log_crash) failed 某些情况下首次提交安心打包您可能会遇到下列错误 [Error] W: fakeLogOpen(/dev/log_crash) failed [Error] W: fakeLogOpen(/dev/log_stats) failed [Error] W: fakeLogOpen(/dev/log_stats) failed [Info] I: Copying libs… (/lib) [Info] I: Building apk file… [Info] I: Copying unknown files/dir… [Info] I: Built apk… [Error] Apk tool compile package to apk failed [Info] 制作结果Failed. Reason:复制代码 ** 解决方法** 重新提交安心打包 Q3: 启动图.9.png格式问题 错误日志中出现如下日志 [Error] W: ERROR: 9-patch image C:\xxxxx\res\drawable-hdpi\splash.9.png malformed. [Error] W: No marked region found along edge. [Error] W: Found along top edge.复制代码 ** 原因** 启动图xxx.9.png不是有效9.png图片格式错误导致。 ** 解决方法** 重新生成有效的9.png图片 ** 备注** 部分用户可能会提问同样.9.png项目为什么传统打包成功安心打包失败呢因为安心打包校验机制更为严格。 ** 文档** .9.png图片相关文档 Q4: Error occurred during initialization of VM 错误日志中出现如下日志 [Info] Error occurred during initialization of VM [Info] Could not reserve enough space for 1048576KB object heap [Error] 制作结果Failed. Reason:复制代码 ** 解决方法** 找到安心打包插件(app-safe-pack)目录下app-safe-pack.ini文件将文件内容里-Xmx1024M修改为-Xmx512M重新提交打包 ** 备注** HBuilderX 3.1.10及以上版本生效 ios 安心打包问题汇总 Q1: 打包失败签名失败errSecInternalComponent错误 错误日志中出现如下日志 [Error] HBuilder.xcarchive/Payload/HBuilder.app: replacing existing signature [Error] Warning: unable to build chain to self-signed root for signer xxxxxxxxxx“” [Error] HBuilder.xcarchive/Payload/HBuilder.app: errSecInternalComponent复制代码 ** 原因** 可能是用户手动点击安装了证书导致打包签名失败。 ** 解决方法** 打开钥匙串访问删除相关用户手动安装的证书后重新打包下图仅供参考需开发者判断哪些证书是手动安装的证书。 安心打包问题反馈 如果您遇到安心打包问题且无法解决请加QQ群827137391。 进群需要提供操作系统和HBuilderX版本号信息提问请提交错误日志或截图。 本群仅限反馈安心打包问题请勿发布无关信息。 ios 安心打包证书安装 本文档不适用windows 前言 某些MacOSX系统上, 使用ios安心打包, 需要安装相关证书. 打开证书目录 安装证书 点击证书文件, 会自动打开钥匙串, 下拉列表钥匙串, 选择系统, 点击 添加 按钮点击添加后, 请在弹窗中,输入电脑密码, 允许钥匙串访问.按照上面的步骤, 依次完成其它证书的导入.
相关文章
-
怎么在网站中做弹窗广告南京百度seo公司
怎么在网站中做弹窗广告南京百度seo公司
- 技术栈
- 2026年03月21日
-
怎么在网站上做签到贪玩网页游戏大全
怎么在网站上做签到贪玩网页游戏大全
- 技术栈
- 2026年03月21日
-
怎么在网站上做seoasp网站源代码下载
怎么在网站上做seoasp网站源代码下载
- 技术栈
- 2026年03月21日
-
怎么在文档中做网站一点就开怎么给网站的照片做超级链接
怎么在文档中做网站一点就开怎么给网站的照片做超级链接
- 技术栈
- 2026年03月21日
-
怎么在悉尼做网站做网站的销售话术
怎么在悉尼做网站做网站的销售话术
- 技术栈
- 2026年03月21日
-
怎么增加网站的收录量福州网站设计哪里好
怎么增加网站的收录量福州网站设计哪里好
- 技术栈
- 2026年03月21日
