title: AiPPT 系统图与调用时序 verified_at: 2026-08-27 tags:

  • AiPPT
  • UML
  • 架构图 status: reference

AiPPT 系统图与调用时序

本页只保留跨项目和跨进程关系。实现细节以平台和业务文档为准。

1. 阅读路径

2. 系统上下文

flowchart TB
    User[用户]
    Host[PowerPoint或WPS]
    Ribbon[Ribbon和右键菜单]
    Web[共享Web页面]
    Bridge[client-communication]
    Adapter[平台实现]
    PPT[PPT对象模型]
    API[AiPPT API]
    Storage[文件、缓存和设置]

    User --> Host
    User --> Ribbon
    Ribbon --> Web
    Web --> Bridge
    Bridge --> Adapter
    Adapter --> PPT
    Web --> API
    Adapter --> Storage

3. 三端组件边界

flowchart LR
    subgraph Shared[共享前端]
        Pages[React页面]
        Comm[TypeScript接口]
    end

    subgraph Windows[Windows PowerPoint]
        WinWeb[WebView2]
        CSharp[C# Handler]
        Interop[Office Interop]
    end

    subgraph Mac[macOS PowerPoint]
        WK[WKWebView]
        Swift[Swift Bridge]
        VBA[VBA和AppleScript]
    end

    subgraph WPS[私有化WPS]
        WpsWeb[WPS WebView]
        WpsImpl[impl/wps和dispatcher]
        WpsApi[window.Application]
    end

    Pages --> Comm
    Comm --> WinWeb --> CSharp --> Interop
    Comm --> WK --> Swift --> VBA
    Comm --> WpsWeb --> WpsImpl --> WpsApi

4. 页面打开时序

sequenceDiagram
    actor User as 用户
    participant Ribbon as Ribbon
    participant Browser as Browser接口
    participant Container as 平台窗口
    participant Page as Web页面

    User->>Ribbon: 点击功能
    Ribbon->>Browser: open(windowConfig)
    alt Windows
        Browser->>Container: CTP或WPF WebView2
    else macOS
        Browser->>Container: NSPanel和WKWebView
    else WPS
        Browser->>Container: TaskPane或WebDialog
    end
    Container->>Page: 加载URL和windowId
    Page->>Browser: 设置尺寸和位置

5. PPT调用时序

sequenceDiagram
    participant Page as Web页面
    participant Comm as client-communication
    participant Adapter as 平台Adapter
    participant Model as PPT对象模型

    Page->>Comm: 调用统一接口
    alt Windows或macOS
        Comm->>Adapter: impl/cpp.ts和postMessageToClient
    else WPS模块接口
        Comm->>Adapter: impl/wps.ts
    else WPS兼容协议
        Comm->>Adapter: wps-dispatcher.ts
    end
    Adapter->>Model: 操作Slide或Shape
    Model-->>Adapter: 结果
    Adapter-->>Page: Response

6. 部署关系

flowchart TB
    Frontend[aippt-frontend-addin]
    WinRepo[aippt_windows_addin]
    MacRepo[aippt-macos-addin]

    Frontend --> Online[在线页面]
    Frontend --> Offline[离线页面]
    Frontend --> WpsCom[WPS加载项]

    Offline --> WinPkg[Windows NSIS包]
    Offline --> MacPkg[macOS PKG]
    Offline --> WpsZip[WPS wps-com.zip]

    WinRepo --> WinPkg
    MacRepo --> MacPkg
    Online --> WebServer[公网或私有化Web服务]
    WpsCom --> WpsZip