目录

文档 / 参考 / 清单 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 写最快。