文档 / 参考 / 清单 app.toml
清单 app.toml
清单只管 app 的身份和权限。能力在代码里声明。
每个 app 的目录里有一份 app.toml。装 app 时,人看得到清单里要的权限。
例子
[app]
name = "agenda"
title = "日程"
version = "0.1.0"
description = "从你的日历取今天明天的安排,开会前提醒"
command = "bin/agenda.cwasm"
network = true
memory_mb = 64
events = ["tick"]
pushes_per_hour = 6
身份
| 字段 | 是什么 |
|---|---|
name |
app 的名字。日志里、卡上都用它。能力都叫 <name>.<动作>。不能叫 qing |
title |
给人看的名字 |
version |
版本号 |
description |
一句话说明 |
command |
编好的 wasm 模块,路径相对这个目录 |
权限
不写的权限都是关着的。
| 字段 | 默认 | 是什么 |
|---|---|---|
network |
false |
要不要联网。false 的 app 联网只拿到错 |
location |
false |
要不要知道设备在哪 |
mic |
false |
要不要录一段话。只在人点了 app 的按钮时能开始录 |
call |
false |
要不要打电话。只在人点了 app 的按钮时能开始打 |
mcu |
false |
要不要和 MCU 收发帧。一台设备只给一个 app |
lan |
false |
要不要和局域网里别的设备上同名的 app 互相广播 |
listen |
0 |
在局域网上等别人连进来的端口,1024 以上。0 是不等 |
mdns |
"" |
系统替 app 回的 mDNS 服务。要先写 listen |
memory_mb |
— | wasm 的内存上限 |
事件和节奏
| 字段 | 是什么 |
|---|---|
events |
要收的系统事件:tick(每分钟一次)、near(有人走近、走开)、notice(外设报的事)、mute(静音开关)。不写就一个都收不到 |
pushes_per_hour |
主动推卡的上限。超了,系统只画不念 |
rate_hz |
要系统按固定频率调 app,最多 200。0 是不调 |
整屏 app
游戏这类占整块屏的 app 用这几个字段:
| 字段 | 是什么 |
|---|---|
screen |
写 "full" 是整屏页,要配 rate_hz = 60 |
frame |
画面格式。不写是 240×160、256 色;"640x480" 是真彩,系统不放大 |
cover |
家上的封面,app 目录里的 PNG |
整屏游戏用 VibePlay SDK 写最快。