chore: Use
This commit is contained in:
parent
b8de863045
commit
76de9f2b9d
|
@ -1,5 +1,6 @@
|
||||||
import { join } from 'path'
|
import { join } from 'path'
|
||||||
import { app, BrowserWindow } from 'electron'
|
import { app, BrowserWindow, ipcMain } from 'electron'
|
||||||
|
import Store from 'electron-store'
|
||||||
|
|
||||||
app.disableHardwareAcceleration()
|
app.disableHardwareAcceleration()
|
||||||
|
|
||||||
|
@ -26,6 +27,7 @@ async function mainWin() {
|
||||||
|
|
||||||
win.loadURL(url)
|
win.loadURL(url)
|
||||||
win.maximize()
|
win.maximize()
|
||||||
|
win.webContents.openDevTools()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,8 +42,21 @@ app.on('window-all-closed', () => {
|
||||||
|
|
||||||
app.on('second-instance', () => {
|
app.on('second-instance', () => {
|
||||||
if (win) {
|
if (win) {
|
||||||
// someone tried to run a second instance, we should focus our window.
|
// Someone tried to run a second instance, we should focus our window.
|
||||||
if (win.isMinimized()) win.restore()
|
if (win.isMinimized()) win.restore()
|
||||||
win.focus()
|
win.focus()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expose 'electron-store' to renderer through 'ipcMain.handle'
|
||||||
|
*/
|
||||||
|
const store = new Store
|
||||||
|
ipcMain.handle('electron-store', async (_evnet, methodSign: string, ...args: any[]) => {
|
||||||
|
if (typeof (store as any)[methodSign] === 'function') {
|
||||||
|
return (store as any)[methodSign](...args)
|
||||||
|
}
|
||||||
|
return (store as any)[methodSign]
|
||||||
|
})
|
||||||
|
|
|
@ -3,8 +3,6 @@ import ReactDOM from 'react-dom'
|
||||||
import './index.css'
|
import './index.css'
|
||||||
import App from './App'
|
import App from './App'
|
||||||
|
|
||||||
console.log('contextBridge ->', window.bridge)
|
|
||||||
|
|
||||||
ReactDOM.render(
|
ReactDOM.render(
|
||||||
<React.StrictMode>
|
<React.StrictMode>
|
||||||
<App />
|
<App />
|
||||||
|
@ -14,3 +12,35 @@ ReactDOM.render(
|
||||||
window.bridge.removeLoading()
|
window.bridge.removeLoading()
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// -----------------------------------------------------------
|
||||||
|
|
||||||
|
console.log('contextBridge ->', window.bridge)
|
||||||
|
|
||||||
|
// Use 'electron-store'
|
||||||
|
const store = {
|
||||||
|
async get(key: string) {
|
||||||
|
const { invoke } = window.bridge.ipcRenderer
|
||||||
|
let value = await invoke('electron-store', 'get', key)
|
||||||
|
try {
|
||||||
|
value = JSON.parse(value)
|
||||||
|
} finally {
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async set(key: string, value: any) {
|
||||||
|
const { invoke } = window.bridge.ipcRenderer
|
||||||
|
let val = value
|
||||||
|
try {
|
||||||
|
if (value && typeof value === 'object') {
|
||||||
|
val = JSON.stringify(value)
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
await invoke('electron-store', 'set', key, val)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
await store.set('Date.now', Date.now())
|
||||||
|
console.log('electron-store ->', 'Date.now:', await store.get('Date.now'))
|
||||||
|
console.log('electron-store ->', 'path:', await window.bridge.ipcRenderer.invoke('electron-store', 'path'))
|
||||||
|
|
Loading…
Reference in New Issue