新的电子 BrowserWindow 从指定的 ui-router 状态开始
New electron BrowserWindow starting at specified ui-router state
是否可以在指定的 ui-router
状态下创建一个新的 BrowserWindow
?这是我的 main.js
:
const {app, BrowserWindow, Menu} = require('electron')
let win
function createWindow() {
win = new BrowserWindow({ width: 950, height: 660 })
win.loadURL(`file://${__dirname}/index.html`)
// Emitted when the window is closed.
win.on('closed', () => { win = null })
app.dock.setMenu(Menu.buildFromTemplate([
{ label: 'Open at page', click: () => { goToState('page') } }
]))
}
let goToState = (state) => {
if (!win) {
createWindow()
// when win is ready, call win.webContents.send('sref', state)
} else {
win.webContents.send('sref', state)
}
}
app.on('ready', createWindow)
app.on('activate', () => {
if (win === null) {
createWindow()
}
})
'sref'
事件在渲染过程中执行$state.go(state)
。
我已经尝试过的:
将函数作为回调传递给 createWindow()
function createWindow (callback) {
...
if (callback) callback()
}
let goToState = (state) => {
if (!win) {
createWindow(() => {
win.webContents.send('sref', state)
})
} else {
win.webContents.send('sref', state)
}
}
使用app.on('web-contents-created')
let goToState = (state) => {
if (!win) {
createWindow()
app.on('web-content-created', () => {
win.webContents.send('sref', state)
})
} else {
win.webContents.send('sref', state)
}
}
感谢阅读。
您是否尝试过将 url 设置为散列后的状态:
win.loadURL(`file://${__dirname}/index.html#/page`)
假设您有一个 ui-路由器状态配置 url:
"url":"/page"
是否可以在指定的 ui-router
状态下创建一个新的 BrowserWindow
?这是我的 main.js
:
const {app, BrowserWindow, Menu} = require('electron')
let win
function createWindow() {
win = new BrowserWindow({ width: 950, height: 660 })
win.loadURL(`file://${__dirname}/index.html`)
// Emitted when the window is closed.
win.on('closed', () => { win = null })
app.dock.setMenu(Menu.buildFromTemplate([
{ label: 'Open at page', click: () => { goToState('page') } }
]))
}
let goToState = (state) => {
if (!win) {
createWindow()
// when win is ready, call win.webContents.send('sref', state)
} else {
win.webContents.send('sref', state)
}
}
app.on('ready', createWindow)
app.on('activate', () => {
if (win === null) {
createWindow()
}
})
'sref'
事件在渲染过程中执行$state.go(state)
。
我已经尝试过的:
将函数作为回调传递给
createWindow()
function createWindow (callback) { ... if (callback) callback() } let goToState = (state) => { if (!win) { createWindow(() => { win.webContents.send('sref', state) }) } else { win.webContents.send('sref', state) } }
使用
app.on('web-contents-created')
let goToState = (state) => { if (!win) { createWindow() app.on('web-content-created', () => { win.webContents.send('sref', state) }) } else { win.webContents.send('sref', state) } }
感谢阅读。
您是否尝试过将 url 设置为散列后的状态:
win.loadURL(`file://${__dirname}/index.html#/page`)
假设您有一个 ui-路由器状态配置 url:
"url":"/page"