Ele_0007:全屏显示 "kiosk": true 模式 显示窗口,但是不夺取焦点 模态父子窗口 主进程的事件和方法

1,

        c = new o({
          width: 300,
          height: 10,
          center:true,
          "kiosk": false,//是否使用kiosk模式。若是使用kiosk模式,应用程序将全屏显示,而且阻止用户离开应用。true or false

          maximizable: false,                  // 是否禁用放大
          minimizable: false,                  // 是否禁用缩小
          closable: false,                     // 是否禁用关闭

          // width: e,
          // height: n,
          // minWidth: 800,
          // minHeight: 600,
          show: true,
          title: "正在加载中,请稍候!",
          // backgroundColor: "#ff0000",
          webPreferences: {
            // preload: path.join(t.getAppPath(), 'preload.js'),
            preload: path.join(__dirname, 'preload.js'),
            nodeIntegrationInWorker: !0,
            webSecurity: !1,
            enableRemoteModule: !0,
            nodeIntegration: !0,
            contextIsolation: false,
            //启用webview标签
            // webviewTag: true
          }
        });

 

2,显示窗口,但是不夺取焦点

                    var newWindow=new remote.app.wod({
                        width:1380,
                        height:980,

                        show: false,

                        // 背景透明配置
                        frame: false,  // 隐藏标题栏
                        backgroundColor: '#00000000',
                        transparent: true,  // 透明

                    });
                    newWindow.loadURL("xxx");
                    newWindow.on('closed',()=>{
                        newWindow=null;
                    });
                    newWindow.setMenu(null);
                    newWindow.setMinimumSize(380,380);

                    // 显示窗口,并夺取焦点
                    newWindow.show();
                    // 显示窗口,但是不夺取焦点
                    // newWindow.showInactive();

 

 

3,模态父子窗口 (固定在主窗口上方,并随着主窗口缩放而缩放)

主窗口
        c = new o({
          width: 300,
          height: 10,
          center:true,
          "kiosk": false,//是否使用kiosk模式。若是使用kiosk模式,应用程序将全屏显示,而且阻止用户离开应用。true or false

          maximizable: false,                  // 是否禁用放大
          minimizable: false,                  // 是否禁用缩小
          closable: false,                     // 是否禁用关闭
          //开启模态父子窗口
          modal: true,

          // width: e,
          // height: n,
          // minWidth: 800,
          // minHeight: 600,
          show: true,
          title: "加载中,请稍候!",
          // backgroundColor: "#ff0000",
          webPreferences: {
            // preload: path.join(t.getAppPath(), 'preload.js'),
            preload: path.join(__dirname, 'preload.js'),
            nodeIntegrationInWorker: !0,
            webSecurity: !1,
            enableRemoteModule: !0,
            nodeIntegration: !0,
            contextIsolation: false,
            //启用webview标签
            // webviewTag: true
          }
        });

子窗口

                    let newWindow=new remote.app.wod({
                        width:1380,
                        height:980,

                        show: true,
                        hasShadow: true,//窗口是否有阴影
                        darkTheme: true,//窗口是否随window主题
                        alwaysOnTop: false,//窗口一直保持在其他窗口前面
                        parent: remote.getCurrentWindow(),//父窗口名

                        // 背景透明配置
                        frame: false,  // 隐藏标题栏
                        backgroundColor: '#00000000',
                        transparent: true,  // 透明


                    });

 

 

4,主进程的事件和方法

主进程:

主进程事件
will-finish-lanching:应用程序完成基础启动
ready:
will-all-closed:监听所有窗口都关闭时,处理函数
before-quit:应用程序关闭之前触发;
will-quit:所有窗口关闭,应用程序将推出时发出;
quit:应用程序退出时发出;
open-file:用户打开一个文件时触发;
open-url:用户打开一个url时触发;
active:应用被激活是触发;
continue-activity:来自不同设备的活动通过handoff恢复时触发;
new-window-for-tab:用户单击macOs新建选项卡按钮时发出;
browser-window-blur:browserwindow失去焦点时触发;
browser-window-focus:browserwindow获得焦点时触发;
browser-window-created:browserwindow创建时触发;
certificate-error:当对 url 的 certificate 证书验证失败的时候触发;
select-client-certificate:当一个客户证书被请求时触发;
login:webContents要进行基本身份认证时触发;
gpu-process-crashed:当gpu进程崩溃或被杀时触发;
accessibility-surport-changed:当 Chrome 的辅助功能状态改变时触发
主进程方法
app.quit():关闭所有窗口+推出程序,即 before-quit、will-quit;
app.exit(code):立即退出程序;强制退出程序;
app.relanuch(options):重新启动程序;
app.isReady():判断Electron应用是否完成初始化;
app.focus():linux/win系统使第一个可见窗口获取焦点,mac上使应用成为当前活动应用;
app.hide():隐藏所有窗口,不是最小化;
app.show():显示所有被隐藏窗口;
app.getAppPath():获取当前应用程序所在目录;
app.getPath(filename):获取指定文件或文件夹目录;
app.getFileIcon(path):获取icon目录;
app.setPath(name,path):重写name的路径为path;
app.getVersion():加载当前应用程序的版本;packge.json
app.getName():获取当前应用程序名称;packge.json
app.setName(name):设置当前应用程序的名字;
app.addRecentDocument(path):将此path添加到最近打开的文件列表中;
app.clearRecentDocuments():清空最近打开的文件列表;
app.setAsDefaultProtocolClient(protocol):设置当前可执行文件的协议;
app.removeAsDefaultProtocolClient(protocol):检查当前可执行文件的协议;
app.isDefaultProtocolClient(protocol):检查当前可执行文件的协议是否为默认协议;
app.setUserTasks(tasks):将 tasks 添加到 Windows 中 JumpList 功能的 Tasks 分类中;
app.makeSingleInstance(callback):此方法使应用程序成为单个实例应用程序, 而不是允许应用程序的多个实例运行, 这将确保只有一个应用程序的实例正在运行, 其余的实例全部会被终止并退出

 

posted @ 2022-10-02 16:48  琥珀君  阅读(139)  评论(0编辑  收藏  举报