通知-电子错误-_crypto.default.randomFillSync不是函数



我尝试在节点服务器上的电子项目中使用notify。因此,我使用以下命令在应用程序文件夹中安装了节点通知程序模块。

$ npm install --save node-notifier

之后,我添加按钮到我的网页显示通知消息
当用户点击按钮时,运行下面的js方法:

<script type = "text/javascript">
const notifier = require('node-notifier')
const path = require('path');

document.getElementById('notify').onclick = (event) => {
notifier.notify ({
title: 'My awesome title',
message: 'Hello from electron, Mr. User!',
icon: path.join('','images/images.png'),  // Absolute path (doesn't work on balloons)
sound: true,  // Only Notification Center or Windows Toasters
wait: true    // Wait with callback, until user action is taken against notification
}, function (err, response) {
// Response is response from notification
});
notifier.on('click', function (notifierObject, options) {
console.log("You clicked on the notification")
});
notifier.on('timeout', function (notifierObject, options) {
console.log("Notification timed out!")
});
}
</script>

但是当我点击我的通知按钮时,我会得到如下错误:

Uncaught TypeError: _crypto.default.randomFillSync is not a function
rng @ ProjectMyElectronProjectnode_modulesuuiddistrng.js:19
v4  @ ProjectMyElectronProjectnode_modulesuuiddistv4.js:17
getPipeName @ ProjectMyElectronProjectnode_modulesnode-notifiernotifierstoaster.js:51
notifyRaw@ ProjectMyElectronProjectnode_modulesnodenotifiernotifierstoaster.js:60
document.getElementById.onclick @notification_index.html:16 

以上错误是rng.js.中抛出的rng函数

function rng() {
if (poolPtr > rnds8Pool.length - 16) {
debugger;
_crypto.default.randomFillSync(rnds8Pool);
poolPtr = 0;
}

randomFillSync方法不存在。我不能理解这个错误,你以前遇到过这个错误吗?谢谢你的建议。

我在项目中使用的节点版本:v16.13.1

节点通知程序是一个nodejs模块,不能在浏览器脚本中使用。

我认为您应该在主进程中调用节点通知程序,然后从渲染器进程到主进程进行通信。

请参阅:https://www.electronjs.org/docs/latest/api/ipc-renderer

相关内容

  • 没有找到相关文章

最新更新