当前位置: 首页 > 知识库问答 >
问题:

利用keytar内电子与角

公良运锋
2023-03-14

我需要将keytar与electron结合使用,但我使用的是Angular和Typescript。我已在main.ts中导入模块

import*作为“keytar”中的keytar

但它无法加载。

或者,在一个模块中,我使用“../../../node_modules/keytar”中的import*作为keytar

但Electron在开发控制台中返回此错误

未捕获的错误:节点加载器:错误:无效的包 /home/project/angularelectron/node_modules/electron/dist/resources/electron.asar在对象。(keytar.node: 5)在对象.../node_modules/keytar/构建/发布/keytar.node(keytar.node: 6)在webpack_require(引导: 79)在对象.../node_modules/keytar/lib/keytar.js(keytar.js: 1)在webpack_require(引导: 79)在模块.../src/app/home/home.component.ts(main.js:4089)在webpack_require(引导: 79)在模块.../src/app/home/home-routing.module.ts(detail.module.ts:13)在webpack_require(引导: 79)在模块.../src/app/app-routing.module.ts

如何正确加载keytar?谢谢


共有2个答案

翁良弼
2023-03-14

我使用Vue和Electron,并且有相同的问题。因此,问题在于在渲染器过程中使用keytar,您无法如此轻松地访问本机api。

const keytar = require("electron").remote.require("keytar");

在我的组件中使用这样的keytar解决了问题

温成济
2023-03-14

首先,请不要使用远程模块,因为它是不推荐的原因。

我只是遇到了同样的问题,并设法通过一些修补来解决它。

由于keytar是一个节点模块,具有与electron渲染器过程一起使用的本机依赖项,因此需要跨越几个障碍。创建浏览器窗口时,请确保将nodeIntegration设置为true,将contextIsolation设置为false。在早期版本中,设置nodeIntegration就足够了,但现在不行了。

然后使用它与角有额外的步骤。您必须使用@adang-Builders/Custate-webpack和node-loader。然后在组件或服务中导入keytar作为从keytar;导入*作为keytar,并在组件定义中声明私有keytar: typeof keytar;。现在这是最重要的部分:在你的构造函数this.keytar=window.require(keytar);中,你必须使用电子的要求函数,否则你会得到问题中的错误。顶部的标准导入将为您提供键入信息。

 类似资料:
  • 问题内容: 使用react和electronic创建桌面应用程序。我想从react组件中调用main.js电子方法。 main.js 如何克服这个问题? 问题答案: 在您的Renderer.js 在您的main.js 这是在主进程与渲染进程之间进行通信的最简单方法。 但是我认为您将使用以下方法将主过程的结果发送到渲染器 因此,这意味着您正在通过IPC通道将结果从main发送到渲染器。并且您应该在渲

  • 问题内容: 我的目标是使用Python向具有嵌入式图像的Gmail用户发送电子邮件。由于图片(我的工作中的数据)的敏感性,无法在线托管该图片,然后通过链接到该图片。 我尝试过将版本编码为,然后发送th is ,但是众所周知这是行不通的。然后,我注意到在Gmail中,您可以将图像拖放到发送框中,它将在接收端内联显示。鉴于此,我然后尝试从Python发送带有图像作为附件的电子邮件。在下面的代码中可以看

  • 问题内容: 我想使用gmail作为smtp服务器发送电子邮件。 这是我的代码,我没有让它工作…运行testSettings()之后,我得到了调试输出,然后它停止了。没有超时,没有错误,什么都没有。 发生以下错误:http : //pastie.org/private/rkoknss6ppiufjd9swqta 问题答案: 代替 props.put(“ mail.transport.protocol

  • 我正在尝试用python制作一个电报回声机器人。我在heroku上托管我的python。 起初,我只是对python请求使用了电报本地API方法,然后我使用了一个python-telegram-bot库。 我能够让常规的getUpdate方法(使用长轮询——即heroku定期向您的电报机器人发出请求以获取更新)工作,但webhook不能。 我认为问题是heroku不会允许进入港口 有谁知道我该怎么

  • 我收到的消息是MimeMessage类型的。 假设我现在收到了一封新的电子邮件(X) 我想创建一个新的MimeMessage(Y),在它的正文中,它会说这封电子邮件是对(X)的响应(回复) p.s(Y)消息稍后将从不同的SMTP url发送,因此X和Y不相关。 多谢了。

  • 我正在使用spring Boot从java发送HTML电子邮件。电子邮件包括签名与我们公司的形象标志。它工作得很好。在Gmail上。但在MacOS应用程序电子邮件中,徽标是作为附件发送的,而不是内联的。 代码的非相关部分替换为...