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):此方法使应用程序成为单个实例应用程序, 而不是允许应用程序的多个实例运行, 这将确保只有一个应用程序的实例正在运行, 其余的实例全部会被终止并退出
琥珀君的博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
2021-10-02 MEMC 0009:管理类联考 写作 强化课9