当前位置: 首页 > news >正文

node-ddk,electron 组件, 打开新窗口

node-ddk 打开新窗口

https://blog.csdn.net/eli960/article/details/146207062

也可以下载demo直接演示

http://linuxmail.cn/go#node-ddk

本文讲解如何在渲染进程发起创建新窗口, 包括 window.open

在主进程定义窗口类型

import main, { NODEDDK } from "node-ddk/main"
// 设置窗口类型, 一般情况,不用调用此函数
main.window.setWindowTypes([
  {
    type: "main",   // 唯一的, main, 本主窗口自动创建,且不应该销毁
    menu: true,
    devTools: true,
    autoDevTools: true,
    windowStateType: "123",
  },
  {
    type: "noframe_test", // 都是自定义类型
    frame: false,
  },
  {
    type: "minWidthHeight",
    minWidth: 500,
    minHeight: 300,
  },
  {
    type: "menu_test123",
    minWidth: 500,
    minHeight: 300,
    menu: true,
  },
  {
    type: "test456",
    minWidth: 500,
    minHeight: 300,
    // 如果需要记住窗口状态, 按不同的类型记住不同窗口状态
    windowStateType: "test_type"
  },
  {
    type: "一般window.open666",
  },
])

在渲染进程(既web端)创建窗口

import renderer, { NODEDDK } from "node-ddk/renderer"
//
renderer.window.create({ type: "noframe_test" })
//
renderer.window.create({ type: "minWidthHeight" })
//
renderer.window.create({ type: "test456",
    // args 是传递给新窗口的数据
    args: {...}
})

在渲染进程(既web端)打开模态窗 window.open

let www = renderer.window.openModal({
    type: "menu_test123",
    "onClose": () => {
        debugShow("模态窗关闭了")
    },
})
// 这个 wwww 就是 window.open() 的返回值

在渲染进程(既web端), 新窗口启动后

获取参数

//
renderer.window.getInfo()
// 结果形如:
{
    "webContentsId": 1,
    "appName": "node-ddk-demo",
    "appVersion": "0.1.1",
    "devMode": true,
    "type": "main",
    "uniqueId": "main",
    // args 就是 create 传入的 args
    "args": {...},
    "minWidth": 100,
    "minHeight": 100,
    "menu": true,
    "devTools": true,
    "autoDevTools": true,
    "windowStateType": "123"
}

窗口类型参数

    // @ 渲染进程启动参数
    export type WindowType = {
        type: string,
        minWidth?: number,
        minHeight?: number,
        resizable?: boolean,
        minimizable?: boolean,
        minimize?: boolean,
        maximizable?: boolean,
        maximize?: boolean,
        transparent?: boolean,
        fullscreenable?: boolean,
        fullscreen?: boolean,
        alwaysOnTop?: boolean,
        frame?: boolean,
        menu?: boolean,
        skipTaskbar?: boolean,
        kiosk?: boolean,
        focus?: boolean,
        needCenter?: boolean,
        x?: number,
        y?: number,
        width?: number,
        height?: number,
        hide?: boolean,
        backgroundColor?: string,
        navigate?: boolean,
        zoomFactor?: number,
        hasShadow?: boolean,
        windowStateType?: string,
        devTools?: boolean,
        autoDevTools?: boolean,
    }
http://www.dtcms.com/a/82828.html

相关文章:

  • 「宇树科技」13家核心零部件供应商梳理!
  • 对顶堆简介 → 第K大问题 + topK问题
  • 设计心得——作用域处理
  • Cross-Site Scripting: DOM $(_config.elem).html 解决问题
  • 【C++11】左值引用、右值引用、移动语义和完美转发
  • 预测性维护:Ubuntu边缘计算机如何降低电梯故障率
  • rust Send Sync 以及对象安全和对象不安全
  • acwing1295. X的因子链
  • Kubernetes - Pod控制器 - Deployment - 金丝雀部署
  • OpenHarmony 入门——ArkUI 跨页面数据同步和页面级UI状态存储LocalStorage小结(二)
  • java使用Apache POI 操作word文档
  • leetcode684.冗余连接
  • 021-TCMalloc
  • embeddings
  • 查看visual studio的MSVC版本的方法
  • 论华为 Pura X 折叠屏性能检测
  • 使用 OpenCV 拼接进行图像处理对比:以形态学操作为例
  • 【Linux网络-NAT、代理服务、内网穿透】
  • 国产开发板—米尔全志T113-i如何实现ARM+RISC-V+DSP协同计算?
  • 深入理解 JavaScript/TypeScript 中的假值(Falsy Values)与逻辑判断 ✨
  • e2studio开发RA4L1(15)----配置RTC时钟及显示时间
  • 阿里云搭建docker私有仓库
  • Ninja编译入门指南:极速构建工具的核心用法与实践
  • NAT 实验:多私网环境下 NAPT、Easy IP 配置及 FTP 服务公网映射
  • 大模型训练的调参与算力调度技术分析
  • 七桥问题与一笔画问题:图论的奠基石
  • 数据库的设计规范:第一范式、第二范式、第三范式
  • 人脸表情识别系统分享(基于深度学习+OpenCV+PyQt5)
  • OpenAI 新语音模型:精细控制AI发声|GPT-4o-transcribe:支持多语言转录,准确率超越Whisper
  • Python第六章07:元组的定义和操作