resources — 资源
引用插件包内的只读资源文件。
self.resources 提供对插件包 assets 目录下资源的只读引用(需声明 resources 权限)。资源路径必须以 assets/ 开头且相对。
方法
| 方法 | 说明 |
|---|---|
asset(path) | 返回资源引用 PluginResource |
uri(path) | 返回资源的 URI 字符串形式 |
asset(path)
返回一个 PluginResource。它是 str 的子类,其字符串值为 plugin-resource:///assets/foo.png,并带有 .path 属性指向原始相对路径。
resource = self.resources.asset("assets/foo.png")
print(resource) # plugin-resource:///assets/foo.png
print(resource.path) # assets/foo.png参数:
path(str) — 相对路径,必须以assets/开头
路径必须以 assets/ 开头且为相对路径。以 / 开头、包含 ..、包含反斜杠 \、包含空字节(\x00)的路径都会抛出 ValueError。
uri(path)
返回资源的 URI 字符串形式,等价于 str(self.asset(path))。
uri = self.resources.uri("assets/logo.png")使用示例
class MyPlugin(UiPlugin):
def _show_logo(self):
logo = self.resources.asset("assets/logo.png")
self.message.info(f"加载资源: {logo}")
def _file_input(self):
resource = self.resources.asset("assets/data/schema.json")
return self.file.read_file(
resource.path,
callback=lambda **cb: print(cb),
)