Open dlrandy opened 6 years ago
shell是给developer提供和desktop环境进行交互的能力的
它里面的一些方法帮助识别和打开app里不该打开的文件的
最佳实践是 虽然shell在Main和Renderer process里存在,但是最好还是在Main里使用,便于控制
electron.shell.beep() shell.showItemInFolder(app.getAppPath() + '/test.txt')
shell.openItem 直接加默认文件路径,使用默认程序打开响应文件 shell.openExternal(scheme + path)
检测当前desktop的网络状态: 1、在Renderer Process: window.addEventListener('online/offline', function)和navigator.onLine,还可以配合Notification API一起使用。 这种方法的缺点就是在有路由器的情况下,路由器和外网练级不上的时候,还是会提示online 2、在Main Process npm install is-online --save 需要轮询,还有interval不能及时反映网络状态 3、合并 前端监听网络状态,但是不是要navigator.onLine判断,是发送给main Process判断 等待结果
Load 一个App的过程: click icon(shortcut)--》app code初始化--》检查用户auth--》加载用户preference--》获取数据--》处理数据并显示
splash Window闪屏 主要是因为app启动时候加载太多的东西原因
splashWindow 通常是要显示版本信息的
通长是在闪屏ready-to-show的时候加载Main Window 并不是在app ready的时候先后创建的, app ready的时候创建闪屏。
在Main窗体加载完成的时候,可以发射一个Event来通知Main可以关掉splash Window,同时调用mainwindow的show方法
设置app的icon,对于windows或者Linux这种可以直接在BrowserWindow的options添加ICON,但是对于mac要使用app.dock.setIcon(path.join());
app.dock.bounce(['critical', 'informational']);在激活的情况下不会发生,有时需要配合setTimeout一起使用