运行模式
功能
app.mode 控制
bt_app 如何准备资源、执行脚本和加载窗口入口。当前只支持
static、
server、
remote。
对比
| 模式 | 入口示例 | 是否需要本地服务 | 是否适合打包 | 适合场景 |
|---|
static | index.html | 否 | 是 | 纯静态页面、小工具、本地资源应用 |
server | http://127.0.0.1:18280 | 是 | 是 | BT 后端加 Web 前端的桌面应用 |
remote | https://example.com | 否 | 是 | 远程 Web、SaaS 管理工具、云端页面壳 |
static
static 模式通过
bt://app/... 读取项目资源。
{
"app": {
"mode": "static",
"entry": "index.html"
}
}
优点是部署简单,打包后不需要启动本地 Web 服务。缺点是页面不能依赖浏览器服务器环境特性,例如服务端路由需要前端自己处理。
server
server 模式先执行项目根目录的
server.bt,再打开
app.entry 指定的 HTTP 地址。
{
"app": {
"mode": "server",
"entry": "http://127.0.0.1:18280"
}
}
server.bt 示例:
net.listen({
type:'web',
bind:'127.0.0.1:18280',
sites:[
{
domains:['127.0.0.1'],
root:'www/',
entry:'main.bt',
static:{
route:'/static/{**}',
path:'www/static/',
default:'index.html'
}
}
]
})
优点是可以使用完整 BT Web 服务能力。缺点是要管理端口,端口被占用会启动失败。
remote
remote 模式直接打开远程 URL:
{
"app": {
"mode": "remote",
"entry": "https://example.com"
}
}
远程入口模式下,软件壳本身可以保持稳定,业务页面部署在服务器端。开发者更新服务器内容后,用户再次打开应用即可使用新版本功能,不一定需要重新下载安装客户端。
当前版本
remote 页面同样会注入
window.bt 和窗口控制能力,只应加载可信远程页面。
server.bt 自动执行
除了
server 模式,只要项目资源中存在
server.bt,当前运行时也会尝试执行它。普通
static 或
remote 项目如果不需要本地服务,不要放置无用的
server.bt。