窗口

用于显示停靠窗口和消息框等的 API 集合。

// Retrives the API instance.
IRCXWindowAPI? api = Main.GetAPI<IRCXWindowAPI>();

// Show message box.
var response = api?.ShowMessageBox(
    new RCXCaption(Main.CommonId, Caption.ExtensionName),
    new RCXCaption("Are you OK?"),
    IRCXWindowAPI.ButtonType.Yes_No,
    IRCXWindowAPI.IconType.Question
);
if (response == IRCXWindowAPI.ResponseType.OK)
{
    // Process when the response is OK.
}

还提供用于托管 WPF 的 WebView2 控件的停靠窗口 API。

  • 可以处理以下 URI。
    • 外部 (互联网、内联网) 网站
    • 部署在运行 RC+ 的 PC 本地的静态网站
      • 也可以启动专用的 HTTP 服务器,以实现 JavaScript 模块的动态导入。
    • 在运行 RC+ 的 PC 本地运行的 Web 应用程序
      • 可以指定应用程序的启动命令 (如 node) 以及参数。
        • 作为参数,如果传递 ${port}、${lang},则分别会替换为端口号 (自动分配)、显示语言名称。
  • 可以使用 Web 技术 (HTML、CSS、JavaScript 等) 实现功能。
    • 窗口关闭、内容保存时执行脚本
    • 内容编辑
      • 获取选中的字符串并传送到剪贴板
      • 发送与编辑菜单对应的消息 ("RCX.Clear", "RCX.Paste", "RCX.SelectAll", "RCX.Undo", "RCX.Redo")
    • 通过F10键发送与帮助显示对应的消息 ("RCX.ShowHelp")
  • 创建主机对象后,可以与 C# 端进行交互。
    • 也可以使用实现了以下函数的内置主机对象 chrome.webview.hostObjects.BuiltinBridge。
      • string GetCaption(int number): 获取指定编号的标题字符串。
      • string ReadConfiguration(bool global): 以 Base64 编码字符串形式读取 Extension 的设置数据。
      • string WriteConfiguration(bool global): 以 Base64 编码字符串形式写入 Extension 的设置数据。
        • 当 global 标志为 true 时,设置数据在 Windows 登录用户间共享;为 false 时,则按登录用户分别存储。
// Retrives the API instance.
IRCXWindowAPI? api = Main.GetAPI<IRCXWindowAPI>();

if (api != null)
{
    // Show "Epson Global Portal" site in a docking window
    var webVewInfo = new IRCXWindowAPI.WebViewInfo(
        (_, _, _) => new Uri("https://epson.com/"),
        Id,
        $"{Id}.External",
        new RCXCaption(CommonId, Caption.WindowTitle_External),
        Main.CommonIcon
    );

    await api.ShowDockingWebViewWindowAsync(webViewInfo).ConfigureAwait(true);
}