提示电子

Tha*_*es 16 javascript electron

如何prompt在电子上替换javascript的功能?

有人可以举个例子吗?

我尝试使用此功能prompt,但发生错误:

未捕获错误:提示符()是,并且不受支持.

Zay*_*Ali 14

prompt,confirm并且alert是阻止脚本的执行线程直到用户输入的功能,这是电子团队不支持它的原因.相反,您可以出于同样的原因使用某些第三方软件包.

以下是一些以异步方式提供此功能的软件包

https://www.npmjs.com/package/smalltalk

https://www.npmjs.com/package/vex-js

https://www.npmjs.com/package/dialogs

  • 答案就在电子文件 window-setup.js 中。`window.alert` 和 `window.confirm` 都有实现,但 `window.prompt` 会抛出异常。 (4认同)
  • 我可以叫`alert`和`confirm`。那不是预期的吗? (2认同)

小智 5

我的回答有点晚了,但也许对其他人仍然有帮助。

由于 Electron 团队不想prompt()自己实现该行为,因此我开发了这个解决方案:electro-osx-prompt。它提供了一种基于 Promise 的方式来获取一些简单的用户输入并适应 macOS 样式。

// From renderer or main process, doesn't matter
const userPrompt = require('electron-osx-prompt');

const icon = __dirname + '/icon.png';

userPrompt('Label text', 'Placeholder text', icon)
  .then(input => {
    console.log(input);
  })
  .catch(err => {
    console.log(err);
  });
Run Code Online (Sandbox Code Playgroud)