预检清单
- 我已阅读了此项目的 Contributing Guidelines。
- 我同意遵循此项目遵循的 Code of Conduct 。
- 我在问题跟踪器中搜索了一个与我想提交的功能请求相匹配的问题,但没有成功。
问题描述
Electron 在 alert
和 confirm
中使用原生对话框,这些对话框可能不符合应用程序主题,并完全忽略对 prompt
的任何调用。
建议的解决方案
应该在 webContents
中添加一个 dialog
事件,每当 window.alert
、window.confirm
或 window.prompt
被调用时都会发出。这应该类似于 Chrome 应用程序中的 webview 标签发出的对话框事件(https://developer.chrome.com/apps/tags/webview#event-dialog)。
该事件将返回:
- 被调用的函数名称
- 要显示在对话框中的文本
- 默认文本(仅适用于提示)
- 一个可以调用以模拟用户接受请求的函数(它将接受一个表示用户响应的参数)
- 一个可以调用以模拟用户取消对话框的函数。
除非调用 preventDefault
,否则默认行为将保持不变。
考虑过的其他方案
我考虑过覆盖相关的问题函数,但更喜欢使用事件,这样更容易使用。
其他信息
无。
3条答案
按热度按时间yrdbyhpb1#
我对这个问题感到非常困惑。由于某种原因,提示丢失了,警报和确认功能也很奇怪。我读到过关于提示被阻塞的信息,但确认也是如此。
我通过新的无边框模态窗口实现了自己的对话,并使用异步消息进行通信。也许这可以成为解决这些对话的通用方法?创建onalert、onprompt、onconfirm事件?
kuuvgm7e2#
为这个点赞。
bvjveswy3#
+1