Version: 3.0.0-beta.5

taro-quickapp-manifest

Taro和快应用配置差异

如果希望自己现在写的Taro程序日后能更平滑的转换到快应用,在十大厂商的多个入口(搜索、语音、浏览器、负一屏)快速上线,就需要了解Taro和快应用的配置差异,由于Taro是立足于微信小程序的开发框架,因此只需要比较微信小程序和快应用的官方文档即可了解差异,以生态更完善的微信小程序为基础整理出如下表格:

微信小程序属性类型必填描述对应快应用属性
pagesstring[]页面路径列表router.pages
windowObject全局的默认窗口表现display
tabBarObject底部 tab 栏的表现
networkTimeoutObject网络超时时间
functionalPagesboolean是否启用插件功能页,默认关闭
subpackagesObject[]分包结构配置subpackages
workersstringWorker 代码放置的目录
requiredBackgroundModesstring[]需要在后台使用的能力,如「音乐播放」features
pluginsObject使用到的插件
preloadRuleObject分包预下载规则
resizablebooleaniPad 小程序是否支持屏幕旋转,默认关闭
navigateToMiniProgramAppIdListstring[]需要跳转的小程序列表,详见 wx.navigateToMiniProgram
usingComponentsObject全局自定义组件配置
permissionObject小程序接口权限相关设置
sitemapLocationString指明 sitemap.json 的位置
styleString指定使用升级后的weui样式

以上是全局配置的差异,从表中可以看到微信小程序有非常多的定制属性,比如tabBar\plugins\sitemapLocation等,当然快应用也有很多定制属性,如下表加粗所示:

属性类型默认值必填描述
packageString-应用包名,确认与原生应用的包名不一致,推荐采用 com.company.module 的格式,如:com.example.demo
nameString-应用名称,6 个汉字以内,与应用商店保存的名称一致,用于在桌面图标、弹窗等处显示应用名称
iconString-应用图标,提供 192x192 大小的即可
versionNameString-应用版本名称,如:`"1.0"`
versionCodeInteger-应用版本号,从1自增,推荐每次重新上传包时versionCode+1**
minPlatformVersionInteger-支持的最小平台版本号,兼容性检查,避免上线后在低版本平台运行并导致不兼容;如果不填按照内测版本处理
featuresArray-接口列表,绝大部分接口都需要在这里声明,否则不能调用,详见每个接口的文档说明
configObject-系统配置信息
routerObject-路由信息
displayObject-UI 显示相关配置
subpackages 1040+Object-定义并启用分包加载

微信小程序还支持每个页面定制自己的页面配置json(大部分属性继承自window),而快应用的页面配置则统一由display.pages管理,从宏观上可以看到两类轻应用的配置差别,微观上我们也来分析一下:

  • pages VS router.pages

微信的pages只是一个路径字符串数组,没有额外的信息,而快应用的pages有很多细腻的属性,比如filter属性,声明该属性之后,页面中可以使用$page获取打开页面的参数,还有launchMode可以指定启动模式,Taro为了兼容这一差异,使用customPageConfig属性进行适配,参考https://taro-docs.jd.com/taro/docs/quick-app.html。

  • window VS display
微信小程序属性描述快应用属性
navigationBarBackgroundColor导航栏背景颜色,如 #000000titleBarBackgroundColor
navigationBarTextStyle导航栏标题颜色,仅支持 black / whitetitleBarTextColor
navigationBarTitleText导航栏标题文字内容titleBarText
navigationStyle导航栏样式,仅支持以下值: default 默认样式 custom 自定义导航栏,只保留右上角胶囊按钮。参见注 2。
backgroundColor窗口的背景色backgroundColor
backgroundTextStyle下拉 loading 的样式,仅支持 dark / light
backgroundColorTop顶部窗口的背景色,仅 iOS 支持
backgroundColorBottom底部窗口的背景色,仅 iOS 支持
enablePullDownRefresh是否开启全局的下拉刷新。 详见 Page.onPullDownRefresh
onReachBottomDistance页面上拉触底事件触发时距页面底部距离,单位为 px。 详见 Page.onReachBottom
pageOrientation屏幕旋转设置,支持 auto / portrait / landscape 详见 响应显示区域变化orientation

微信小程序对背景和导航栏的样式配置更加细腻,快应用则新增了对沉浸式状态栏的管理。

属性类型默认值描述
statusBarImmersive 1050+Booleanfalse是否显示沉浸式状态栏
statusBarTextStyle 1050+light | dark | autoauto状态栏文字样式,有亮,暗和自动 当为自动时会根据状态栏背景色调整
statusBarBackgroundColor 1050+String-状态栏背景色,默认值同标题栏背景色
statusBarBackgroundOpacity 1050+float(0-1.0)false状态栏背景色不透明度,默认值同标题栏背景色不透明度

至于啥是沉浸式状态栏,参考经验

  • subPackages VS subPackages

    既然是轻应用自然少不了分包机制,微信的subPackages 支持root\name\pages\independent字段,当independent字段为true时为独立分包,此时可以不需下载主包即可运行,否则为普通分包,当用户进入普通分包或主包内页面时,主包会被下载,快应用则支持name\resource字段,resource就是包名,运行时,快应用将优先加载基础包和页面所在分包,其余分包会自动在后台进行预加载。


以上就是Taro和快应用的配置对比啦。

参考链接:

https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE

https://doc.quickapp.cn/framework/manifest.html