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),
        )

On this page