所以我开始学习电子,我做了一个很酷的应用程序。我想添加更多东西,但我有点卡住了。我尝试使用manufacturer();
in添加 cpu 名称systeminformation
。我不知道我做错了什么。上次我会提醒你,我是一个完整的初学者,所以希望我有点愚蠢。
这就是我想要制作的 div 的样子
<div class="cpu_name">
CPU name: <span id="cpu-name">-</span>
</div>
<div class="cpu_cores">
CPU cores: <span id="cpu-cores">-</span>
</div>
<div class="cpu_temperature">
CPU temperature: <span id="cpu-temperature">-</span>
</div>
</div>
另外,我没有忘记使用脚本
<script src="./renderer.js" defer type="module"></script>
<script src="./js/window.js" defer type="module"></script>
我所做的下一件事是将它添加到renderer.js
我创建的链接到#cpu-name
const CPU_NAME = document.getElementById("cpu-name");
然后我创建了getCpuName()
函数
async function getCpuName(){
const name = await app.cpuName();
const cpu_name = name.manufacturer;
updateCpuName(cpu_name);
}
因为我调用了一个updateCpuName()
方法,所以我创建了一个
function updateCpuName(cpu__name){
CPU_NAME.innerText = cpu__name;
console.log(cpu__name);
}
接下来我所做的就是将它添加到preload.js
. 我已经按教程完成了 preload.js,因为我还没有真正理解那里的所有内容......这是我的整个preload.js
脚本
const os = require("os");
const { ipcRenderer, contextBridge } = require("electron");
const API = {
window:{
close: () => ipcRenderer.send("app/close"),
minimize: () => ipcRenderer.send("app/minimize"),
},
cpuUsage: (data) => ipcRenderer.invoke("cpu/get", data),
cpuName: (data) => ipcRenderer.invoke("cpu/name", data),
}
contextBridge.exposeInMainWorld("app", API);
但这cpuName: (data) => ipcRenderer.invoke("cpu/name", data),
是这里唯一重要的事情。我做的最后一件事是将它添加到index.js
. 所以我基本上const
用systeminformation
const {currentLoad, manufacturer, cpu } = require("systeminformation");
然后做了一个ipcMain.handle();
ipcMain.handle("cpu/name", async (_, data) => {
const name = await manufacturer();
return name;
});
我确定我做错了什么,但我无法弄清楚是什么。这只是一个有趣的项目,我正在努力让它变得更好。感谢您甚至只是阅读此内容^-^