electron 支持在dialog.showMessageBox和dialog.showErrorBox中显示辅助视图选项,

v8wbuo2f  于 3个月前  发布在  Electron
关注(0)|答案(9)|浏览(62)
  • Electron版本:2.0.0-beta.5
  • 操作系统:macOS 10.13.3

预期行为

我期望dialog.showMessageBoxdialog.showErrorBox有一个选项来指定附件视图。在原生世界中,你可以在其中渲染任何内容,但我只想有一个多行文本字段。
我的特定用例是需要能够在对话框中显示错误堆栈跟踪,对于electron-unhandled,它目前看起来像这样:

但我希望它是这样的:

实际行为

如何重现

bnl4lu3b

bnl4lu3b1#

这也可以用作默认设置,以显示未处理的错误,因为它们目前在消息框中被截断,无法复制/粘贴。

vwhgwdsa

vwhgwdsa2#

与此相关的:MessageBoxView: Enable text selection for message text.
顺便问一下,我们不能使用Chrome的aura小部件吗?
帮助 -> 报告问题显示一个多行文本字段,我们应该能够渲染类似的东西吗?

g6ll5ycj

g6ll5ycj3#

也许提供一个选项,使'accessory'字段可切换会很有用。在错误消息和发布说明(这是两个主要的使用场景)的情况下,最初隐藏详细信息可能是更好的用户体验。

我还在Mac上看到过类似的设计模式(初始时隐藏错误详细信息),但我暂时想不起来是哪里了。您可以在下面的可切换评论字段中看到类似的东西。

hsgswve4

hsgswve44#

在 Windows 上是否有类似的模式?这似乎是一个非常特殊的用例,可能更适合作为专门的本地模块,而不是给我们已经不简单的对话框 API 增加更多复杂性。🤔

soat7uwm

soat7uwm5#

我对Windows不熟悉,但从我所了解的来看,它确实如此:https://msdn.microsoft.com/en-us/library/windows/desktop/ms644995(v=vs.85).aspx#edit
尽管如此,如果这仅限于macOS,我也能接受。
这似乎是一个非常特殊的用例,可能更适合作为一个专用的本地模块,而不是给我们已经相当复杂的对话框API增加更多复杂性。
这样做不会增加太多复杂性。它只是将给定的文本设置为 NSTextView 作为 accessoryView : https://developer.apple.com/documentation/appkit/nsalert/1530575-accessoryview?language=objc

vmjh9lq9

vmjh9lq96#

尽管如此,我更希望这只是一个仅限于macOS的功能。
我不能代表其他人说话,但就个人而言,我希望像Electron一样实现100%的跨平台兼容性。也就是说,没有小的操作系统切换,没有平台条件,只需要一套代码,它就能正常工作。将门户添加到特定于操作系统的功能中,如这个配件视图,是朝着相反的方向发展的。
在独立实现方面,这不会增加太多复杂性,但将其添加到选项解析和操作系统特定的交互中会带来额外的负担,而且我不相信这是一个足够常见的用例,需要更多的代码来维护和测试。
在我看来,如果我们能找到一种简单且一致的方式来跨平台使用它,那么这应该只是一种功能。

waxmsbnn

waxmsbnn7#

我无法代表其他人发言,但就我个人而言,我希望Electron能做到100%跨平台。也就是说,没有小型操作系统切换,没有平台条件,只需要一套代码,它就能正常工作(tm)。
理想情况下是这样的,但Electron中已经有很多特定于操作系统的功能了。当然,我们应该努力实现这一点,但不应该成为添加有用功能的一个障碍。
我不认为这是一个足够常见的用例,需要更多的代码来维护和测试。
先有鸡还是先有蛋的问题。在实际实现并人们开始使用之前,很难知道答案。它可以在对话框中呈现大量文本时派上用场。例如:堆栈跟踪、日志、EULA、积分、更长的说明、许可证等。

n3h0vuf2

n3h0vuf28#

我不知道GTK是如何工作的,但看起来你可以使用gtk-dialog-get-content-area在对话框中添加一个文本区域。

b09cbbtk

b09cbbtk9#

如果我们要实现这样的功能,让渲染后的内容成为网页内容可能是个好主意。否则,人们将如何将辛普森的gifs放入他们的发布说明中呢?

相关问题