BT编程语言文档

app.json 配置

功能

app.jsonbt_app 的桌面应用配置文件。它描述应用名称、窗口、入口、运行模式、图标、主脚本和打包资源。 如果项目根目录不存在 app.json,但存在 index.htmlbt_app 会按纯 HTML 项目自动生成配置。

完整示例

app 字段

字段类型必填默认值说明
app.namestringBTApp应用内部名称,也是默认打包输出文件名。只能是单个文件名片段,不能包含路径或 Windows 文件名非法字符。
app.titlestringBT 桌面应用窗口标题。用户看到的应用名称通常写在这里。
app.versionstring1.0.0应用版本。当前主要用于配置记录。
app.descriptionstring应用说明。Windows 打包时写入 exe 的 FileDescription 元信息。
app.copyrightstring版权说明。Windows 打包时写入 exe 的 LegalCopyright 元信息。
app.modestringstatic运行模式,只能是 staticserverremote
app.entrystring按模式决定窗口入口。static 默认 index.htmlserver 默认 http://127.0.0.1:18280remote 默认 https://example.com
app.iconstring内置图标项目内相对路径,当前只支持 .ico 文件。用于运行窗口图标和 Windows 打包 exe 图标。
app.mainstring/boolean/null自动尝试 main.bt前端 window.bt.call() 可调用的 BT 主脚本。字符串表示指定脚本;false 或空字符串表示不执行;truenull 或省略表示自动查找 main.bt
app.devtoolsbooleanfalse是否允许打开 WebView 开发者工具。建议只在开发阶段开启。
app.consolebooleantrue是否启用调试控制台。打包时为 false 会把 Windows exe 改为 GUI 子系统,双击时不弹控制台。

window 字段

字段类型必填默认值说明
window.widthnumber800主窗口初始宽度,单位为逻辑像素。写 0 会回退到默认值。
window.heightnumber500主窗口初始高度,单位为逻辑像素。写 0 会回退到默认值。
window.resizablebooleantrue是否允许用户调整窗口大小。
window.fullscreenbooleanfalse是否全屏启动。
window.hide_titlebarbooleanfalse是否隐藏系统标题栏。隐藏后需要页面自己提供拖动、关闭等交互。
window.always_on_topbooleanfalse是否置顶窗口,适合悬浮工具、监控面板等场景。

resources 字段

字段类型必填默认值说明
resourcesstring[][]打包时进入 Bundle 的资源规则,支持普通相对文件、glob 和 assets/** 这类递归目录规则。
构建时还会自动补齐必要资源:
  • 当前目录存在 app.json 时自动加入 app.json
  • static 模式自动加入 app.entry 指向的入口文件。
  • app.main 自动模式下如果存在 main.bt,自动加入 main.bt
  • 指定 app.main 字符串时自动加入该脚本。
  • 当前目录存在 server.bt 时自动加入 server.bt
  • 配置了 app.icon 时自动加入图标文件。
resources 只能写项目内相对路径,不能写绝对路径,不能包含 ..。普通文件不存在会打包失败;目录本身会被忽略;assets/** 会递归收集目录内文件。

纯 HTML 的 bt-app 标签

纯 HTML 项目没有 app.json 时,可以在 index.html 中写 <bt-app> app.jsonresources 使用 JSON 数组;<bt-app> 标签的 resources 使用 | 分隔。纯 HTML 项目还会自动扫描 link[href]script[src]img[src]source[src]iframe[src]audio[src]video[src]video[poster] 中的本地相对资源。

注意事项

  • app.nameapp.title 不同:name 更偏内部名称和输出文件名,title 是窗口标题。
  • server 模式下 app.entry 不是 server.bt,而是窗口要打开的 HTTP 地址。
  • 当前版本 app.icon 只接受 .ico,不要把 .png.icns 写成已支持图标。
  • 远程页面当前也会注入 window.bt,只应加载可信地址。