一、效果展示:界面控制是否需要开机自启动
二、代码实现:
1、在渲染进程login.html中,画好界面,默认勾选;
<div class="intro">开机自启动 <input type="checkbox" id="checkbox" checked/></div>
2、在渲染进程login.js中,获取用户操作并localStorage存储数据,保存用户的操作;
const checkbox = document.querySelector('#checkbox')
let isStartup = localStorage.getItem('isStartup') || '' //是否开机启动
3、在渲染进程login.js中,在登录成功后设置是否开机自启动;
//在登录接口调用成功后操作
if (response.ok) {
// do something
// 设置开机自启动
localStorage.setItem('isStartup', checkbox.checked ? 'yes' : 'no')
// 给主进程发消息
ipcRenderer.send('handle-checkbox', checkbox.checked)
}
4、在主进程main.js中,收到登录后的消息,自动配置是否开机自启动;
// 用户登录开机时是否自动启动
ipcMain.on('handle-checkbox', (event, isChecked) => {
app.setLoginItemSettings({
openAtLogin: isChecked,
// 如果应用以管理员身份运行,设置此选项为true可避免UAC(用户账户控制)对话框在Windows上弹出。
openAsHidden: false, // macOS特有的,当设置为true时,应用会隐藏式启动
})
})
5、在渲染进程login.js中,重新登录时判断是否勾选开机自启动;
// 重新登陆时判断是否勾选开机自启动
if (isStartup && isStartup == 'yes') {
checkbox.checked = true
} else {
checkbox.checked = false
}