配置
入口文件是项目根目录的 deekeScript.json。有界面时,启动经过 Splash 后进入 homePage。只跑脚本时,这个文件用来识别工程,不必打开任何页面。
必须有入口文件
项目根目录必须有 deekeScript.json,否则无法使用 VSCode 中的 DeekeScript 插件(无法同步代码、无法在 VSCode 上运行 JS)。
最小配置
{
"name": "Deeke",
"packageName": "cn.deeke.demo",
"host": "https://example.com",
"homePage": "pages/home"
}做界面时有这一份就能进首页。只跑脚本时,这个文件用来识别工程,不必打开 homePage。底栏、全局窗口按需再加。
主体参数
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| name | String | 是 | Deeke | 安装后在手机上显示的名称 |
| packageName | String | 是 | cn.deeke.test | 包名,打包时请改成自己的,不要用默认值 |
| versionCode | String | 是 | 100 | 版本号,用于判断是否可升级 |
| versionName | String | 是 | 1.0.0 | 版本名称,尽量和 versionCode 对应 |
| icon | String | 是 | logo/dke.png | 图标,建议 200×200 |
| host | String | 否 | https://example.com | 接口请求域名 |
| debug | Boolean | 否 | true | 默认 true;设为 false 时需要激活码才能使用 |
| apis | Array | 否 | 见 后端接口 | 激活码等接口 |
| homePage | String | 是 | pages/home | 入口页面文件夹,加载该目录下的 page.json / page.js |
| window | Object | 否 | 见下表 | 全局窗口。先应用,再由当前页面覆盖 |
| pages | Array | 否 | 见下表 | 页面别名。跳转也可直接写文件夹 |
| components | Array | 否 | 见下表 | 自定义组件别名。不写则按 components/<id> 加载 |
| bottomMenus | Array | 否 | 见下表 | 底部 Tab。不配或空数组则隐藏底栏 |
| bottomMenusHidden | Boolean | 否 | true | 强制隐藏底栏 |
| floatWindow | Object | 否 | 见 悬浮球 | 项目悬浮窗的展开菜单(点「运行」进入项目后,或打包 App)。开发器那颗球仍是连点两次停止 |
homePage 写目录,无需再放入 pages。兼容旧写法:页面 id(如 "home")会先在 pages 中查找,未找到则按 pages/home 加载。
先读取 deekeScript.json 里的 window 参数,再读取当前页面的 page.json,同名字段由页面覆盖。
window 参数
全局窗口,作用于所有页面的内容区和系统栏。页面 JSON 里的同名字段优先。
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| style | Object | 否 | { "padding": 16, "background": "#F5F5F5" } | 内容区样式:padding / margin / background 等。未写 padding 时为 16 |
| title | String / Object | 否 | 见 页面 | 导航栏默认样式。页面未写 title 时不显示导航栏 |
| statusBar | String / Object | 否 | 见下表 | 顶部状态栏 |
| tabBar | Object | 否 | 见 tabBar | 底部 Tab 颜色。也可写在入口根上 |
statusBar 为对象时:
| 参数名 | 类型 | 说明 |
|---|---|---|
| background | String | 状态栏背景色。未写时跟随导航栏 title.background |
| color | String | 状态栏图标颜色:light(浅色图标)或 dark(深色图标)。未写时按背景明暗推断 |
statusBar 也可直接写成颜色字符串,如 "#006A65"。
pages 参数
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| id | String | 是 | stats | 页面别名,用于跳转和底部菜单 |
| file | String | 是 | pages/stats | 页面目录,也可写成 pages/stats/page.json |
| title | String | 否 | 数据统计 | 备用标题;page.json 的 title 优先 |
components 参数
和 pages 一样按 id 注册,目录里是 component.json + component.js,且 JSON 必须有 "component": true。页面或弹窗里用 "type": "choose" 引用,见 组件结构。
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| id | String | 是 | choose | 组件名,页面里可写 "type": "choose" |
| file | String | 是 | components/choose | 组件目录,也可写成 components/choose/component.json |
bottomMenus 参数
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| title | String | 是 | 首页,也可用 {NAME} | 菜单文字 |
| icon | String | 否 | img/home.png | 菜单图标 |
| page | String | 是 | pages/home | 入口文件夹,或 pages 中的 id。未写则回落到 homePage |
未配置 bottomMenus(或 [])时隐藏底栏,启动后显示 homePage。
tabBar 参数
底栏颜色写在 window.tabBar(也可写在入口根上的 tabBar)。不写则用默认绿/灰。
| 参数名 | 类型 | 说明 |
|---|---|---|
| color | String | 未选中项的文字颜色,默认 #6F7978。未写 iconColor 时图标也用这个 |
| selectedColor | String | 选中项的文字颜色,默认 #006A65。也可用 activeColor。未写 selectedIconColor 时图标也用这个 |
| iconColor | String | 未选中项的图标颜色。不写则跟 color。SVG / 单色图会跟着着色 |
| selectedIconColor | String | 选中项的图标颜色。不写则跟 selectedColor |
| background | String | 底栏背景,默认 #FFFFFF。也可用 backgroundColor |
| borderColor | String | 顶部分割线,默认 #EEEEEE |
| fontSize | Number | 文字大小 sp。页面里也可用 this.setTabBarStyle 改 |
bottomMenus 每一项还可写:
| 参数名 | 类型 | 说明 |
|---|---|---|
| selectedIcon | String | 选中态图标。未写则沿用 icon 并按 selectedIconColor(未写则 selectedColor)着色 |
| badge | String / Number | 初始角标。运行时改数量用 this.setTabBarItem |
整栏或某一项要在页面里改(文字、图标色、角标、隐藏、背景),见 底部菜单。
floatWindow 参数
项目悬浮窗点开后展开的图标(开发器那颗球不会读这份配置)。不写 menus 时,脚本运行中点球仍会展开「停止」。字段和 FloatWindow 方法见 悬浮球。
{
"floatWindow": {
"menus": [
{ "id": "stop", "icon": "close", "label": "停止", "action": "stop", "show": "running" },
{ "id": "skip", "icon": "img/skip.png", "label": "跳过", "onTap": "onSkip", "show": "running" }
]
}
}完整示例
{
"name": "Deeke",
"packageName": "cn.deeke.demo",
"versionCode": "100",
"versionName": "1.0.0",
"host": "https://example.com",
"homePage": "pages/home",
"window": {
"style": {
"background": "#F5F5F5",
"padding": 16
},
"title": {
"fontSize": 18,
"color": "#FFFFFF",
"background": "#006A65"
},
"statusBar": {
"background": "#006A65",
"color": "light"
},
"tabBar": {
"color": "#6F7978",
"selectedColor": "#006A65",
"background": "#FFFFFF",
"borderColor": "#EEEEEE"
}
},
"pages": [
{ "id": "stats", "file": "pages/stats", "title": "统计" },
{ "id": "settings", "file": "pages/settings", "title": "设置" },
{ "id": "detail", "file": "pages/detail", "title": "详情" }
],
"components": [
{ "id": "choose", "file": "components/choose" }
],
"bottomMenus": [
{ "title": "{NAME}", "icon": "img/home.png", "page": "pages/home" },
{ "title": "统计", "icon": "img/statistics.png", "page": "pages/stats", "badge": 3 },
{ "title": "设置", "icon": "img/setting.png", "page": "pages/settings" }
],
"floatWindow": {
"menus": [
{ "id": "stop", "icon": "close", "label": "停止", "action": "stop", "show": "running" }
]
}
}写好入口后,给 homePage 对应的目录写 页面结构。
