Pixso 开放文档
插件 API
官方工具集
  • 中文
  • English
插件 API
官方工具集
  • 中文
  • English
  • 插件 API

    • 简介
    • 预备知识
    • manifest
    • 开发指南
    • 更新日志
    • Plugin API 文档

      • 概述
      • 全局对象

        • pixso
        • pixso.ui
        • pixso.host
        • pixso.mouse
        • pixso.editor
        • pixso.keyboard
        • pixso.fieldset
        • pixso.viewport
        • pixso.vectorEditor
        • pixso.stickyToolbar
        • pixso.clientStorage
        • pixso.serverStorage
      • 节点类型

        • BooleanOperationNode
        • ComponentNode
        • ComponentSetNode
        • DocumentNode
        • EllipseNode
        • FrameNode
        • GroupNode
        • InstanceNode
        • LineNode
        • PageNode
        • PolygonNode
        • RectangleNode
        • SectionNode
        • SliceNode
        • StarNode
        • TextNode
        • VectorNode
      • 样式类型

        • PaintStyle
        • TextStyle
        • EffectStyle
        • GridStyle
      • 数据类型

        • Action
        • ArcData
        • BlendMode
        • CommandItem
        • ComponentProperties-Related
        • Constraints
        • DialogType
        • DocumentationLink
        • Effect
        • EmbedData
        • ExportSettings
        • FontName
        • Guide
        • HandleMirroring
        • HyperlinkTarget
        • Image
        • LayoutGrid
        • LetterSpacing
        • Library
        • LineHeight
        • NodeChangeProperty
        • OverflowDirection
        • Overlay
        • Paint
        • PublishStatus
        • Reaction
        • Rect-related
        • RGB & RGBA
        • StickyToolbar
        • StrokeCap
        • StrokeJoin
        • StyleChangeProperty
        • TextCase
        • TextDecoration
        • TextListOptions
        • ThemeType
        • ToolType
        • Transition
        • Trigger
        • Vector
    • Host API 文档

      • 概述
      • Host API
  • 服务端 API

    • OpenAPI 文档
    • OpenAPI 文档
    • 事件订阅
    • 事件订阅
  • 客户端 API

    • 简介
    • 唤醒客户端
    • Web API
    • 更新日志

简介

插件的文件结构

一个 Pixso 插件通常包含3个部分:

.
├── manifest.json   # (必需的)插件的配置文件
├── main.js         # (可选的)运行在插件沙箱的脚本文件,用于访问插件API
└── ui.html         # (可选的)嵌入在iframe中的HTML文件,用于呈现插件UI

插件的运行机制

首先,我们要了解一下插件相关的运行机制,以便更好地实现功能。

Pixso 插件本质上和开发其他 Web 没有区别,开发需要使用 HTML、CSS 和 JavaScript 等 Web 技术,但出于对插件和平台的安全性考虑,我们在规则上对某些浏览器 API 及使用方法进行了调整和限制。

main.js

访问 Pixso 的文件内容

如果你的插件需要访问 Pixso 的文件内容,可以通过编写 JavaScript 脚本来实现,同样出于安全性的考虑,这个 JavaScript 脚本会在主线程的沙箱中运行,该沙箱是一个嵌入式的 JS 引擎,所以在沙箱中无法访问浏览器提供的 API,如 XMLHttpRequest、DOM。但你可以正常使用标准 JavaScript ES 库,如 JSON、Promise 和 Unit8Array 等等。

ui.html

构建用户界面

你可以通过 HTML 文件来创建用户界面,用户界面运行在 <iframe> 中,本质上是一个独立的页面,可以通过 JavaScript 访问全部的 Web API,但是无法直接访问 Pixso 的插件 API。

主线程脚本与用户之间的信息传递

如果需要同时访问全部的 Web API 和 Pixso 文件的内容,可以将上述两种方式结合起来,让用户界面的脚本和沙箱中的脚本实现信息通信。

兼容 Figma 插件

Pixso 同时兼容 Figma 插件,可以直接导入 Figma 插件代码运行,如果需要在代码中区分 Pixso 与 Figma 环境,可通过以下方式:

用户界面

<script>
  const isInPixso = window.location.origin.includes('pixso');
</script>

主线程脚本

  const isInPixso = !!pixso
Next
预备知识