首先,在在这里深入研究之前,我已经问过这个问题的更简单版本。但是,当我搜索时,事情变得更加复杂,我可以再描述一下。
我正在尝试使用 Google 的 Blockly 创建一个电子应用程序。重命名 Blockly 域中的变量会在用户浏览器中打开一个提示,要求输入新变量的名称,正如您在它自己的网站上看到的那样(单击“计数”并选择“重命名变量...”)。
问题是:Electron 不支持window.prompt(),如果我让代码保持原样,它也不会做任何事情,因此,经过一番搜索,我了解到您可以覆盖Blockly.prompt以使用自己的代码。我的猜测:所以你可以使用替代方案window.prompt()
我安装electron-prompt并尝试使用它来获取用户在新提示窗口中的输入,以将其发送回 Blockly 处理重命名的核心函数。这是我正在尝试的:
var prompt = require('electron-prompt');
var setPrompt = function()
{
return prompt
({
title: 'Renaming',
label: 'Renaming variable to:',
type: 'input'
})
};
var getPrompt = function()
{
return setPrompt().then(function(value){return value})
}
var promptReturn = function()
{
return getPrompt().then(function(value){return value})
}
Blockly.prompt = function(message, defaultValue, callback)
{
callback(promptReturn().then(function(value){return value}));
};
Run Code Online (Sandbox Code Playgroud)
编辑:从源代码electron-prompt是在这里,并通过观察它,我试图从适应信息 …