v0.1首个正式支持的版本化规范查看版本范围

canvas.measureText()

用宿主文本渲染器批量测量字符串。它只返回度量,不执行换行、段落布局或富文本排版。

Syntax

const metrics = await host.canvas.measureText(canvasId, texts, style);

Parameters

参数 类型 说明
canvasId string 确定默认字体和缩放上下文
texts string[] 有界字符串数组
style TextStyle 字号、对齐、文本方向和可选包内字体句柄

Return value

TextMetrics[],与 texts 一一对应。v0.1 的封闭结构是 { advance: f32 },表示非负的行内推进距离。align 不改变测量值;direction 参与塑形,但返回值始终是正向距离。

Examples

const font = await host.asset.loadFont('fonts/ui');
const [save, cancel] = await host.canvas.measureText(
  'main',
  ['保存', '取消'],
  { font, size: 16, align: 'start', direction: 'ltr' },
);

layoutButtons([save.advance, cancel.advance]);

批量测量多个字符串,避免逐项跨越 guest/host 边界。

Errors

特有错误:deniednot-foundstale-handleresource-deniedinvalid-textlimit-exceeded。字体句柄类型不匹配或来自其他应用必须返回 stale-handle/resource-denied

Requirements

  • 能力:host:canvas.measureText
  • 相关能力:创建自定义字体需要 host:asset.loadFont
  • 用户激活:不需要
  • 信任档位:green

See also

asset.loadFont()canvas.draw()

Host API 版本与分层概览Host API v0.1版本非正式提议提议canvas API呈现canvas.getInfo()方法canvas.draw()方法canvas.present()方法canvas.measureText()方法canvas.frame event事件canvas.resize event事件asset API呈现asset.read()方法asset.loadFont()方法playback API呈现playback.open()方法playback.write()方法playback.stop()方法playback.ready event事件playback.ended event事件input API输入input.focus()方法input.pointer event事件input.key event事件input.wheel event事件input.focusChange event事件ime API输入ime.openSession()方法ime.updateState()方法ime.updateGeometry()方法ime.closeSession()方法ime.textUpdate event事件ime.composition event事件ime.formatUpdate event事件ime.characterBoundsRequest event事件ime.ended event事件capture API输入capture.requestCamera()方法capture.requestMic()方法capture.frame()方法capture.readAudio()方法capture.stop()方法capture.ended event事件store API数据store.get()方法store.put()方法store.delete()方法store.list()方法store.deletePrefix()方法clipboard API数据clipboard.readText()方法clipboard.writeText()方法env API平台集成env.snapshot()方法env.change event事件开始调用 Host API指南构建交互式绘图应用指南构建自绘文本编辑器指南管理媒体采集与播放指南组织本地数据与同步指南