4
有人可以帮我实施我的Electron应用程序的加载动画吗? 我正在学习这项新技术,理解正确的方法是很好的。电子加载动画
我的想法是这样的:
app.on('ready',() => {
// show main content
})
app.on('not-ready',() => {
// show loading animation
})
有人可以帮我实施我的Electron应用程序的加载动画吗? 我正在学习这项新技术,理解正确的方法是很好的。电子加载动画
我的想法是这样的:
app.on('ready',() => {
// show main content
})
app.on('not-ready',() => {
// show loading animation
})
据我所知,应该没有从app
发出事件之前ready
(唯一的例外是will-finish-launching
仅适用于Mac系统)。
此外,在app
为ready
之前,您无法打开任何BrowserWindow
,因此您应该等待它。
但是,如果您的主应用程序窗口加载速度很慢,您仍然可以在此之前打开一个“加载窗口”,并在您的主窗口准备就绪时切换它们。
const { app, BrowserWindow } = require('electron')
app.on('ready',() => {
let main = null
let loading = new BrowserWindow({show: false, frame: false})
loading.once('show',() => {
main = new BrowserWindow({show: false})
main.webContents.once('dom-ready',() => {
console.log('main loaded')
main.show()
loading.hide()
loading.close()
})
// long loading html
main.loadURL('http://spacecrafts3d.org')
})
loading.loadURL('loding.html')
loading.show()
})
window.open()
如果你想为BrowserWindow
通过window.open()
在渲染过程中打开做同样的,你可以使用new-window
事件webContents
如果nativeWindowOpen
是true
main = new BrowserWindow({
webPreferences: {
nativeWindowOpen: true
}
})
main.webContents.on('new-window', (event, url) => {
// there are more args not used here
event.preventDefault()
const win = new BrowserWindow({show: false})
win.webContents.once('dom-ready',() => {
win.show()
loading.hide() // don't destroy in this case
})
win.loadURL(url)
loading.show()
event.newGuest = win
})
谢谢,这是我一直在寻找的答案! – ElDon90
如何通过'window.open'创建窗口或者点击渲染器进程中的链接来添加加载动画? 'window.open('https://www.google.com/')' – cuixiping
@cuixiping也为这种情况增加了一个可能的解决方案 – pergy