一、效果展示:界面控制是否需要开机自启动

二、代码实现:
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
- }