electron 电子共享菜单示例

hc8w905p  于 2023-04-27  发布在  Electron
关注(0)|答案(1)|浏览(284)

Electron有一个API for the macOS share menu,但是页面上没有提供如何使用它的示例。我很难开始,因为我不确定代码应该放在哪个文件中,或者如何将它连接到接口元素。你如何使用ShareMenu API?

dced5bon

dced5bon1#

这是一年前的事了,所以你可能已经弄明白了,但对于任何感到困惑的人,我希望这能有所帮助。
假设您熟悉electron的IPC系统(https://www.electronjs.org/docs/latest/tutorial/ipc),这里有一个可能适合您的示例工作流。
1.用户右键单击图像。
1.渲染器进程(浏览器窗口)向主进程发送IPC消息,并打开URL。
1.监听所述消息的主进程接收该消息并获取URL,并且可能将其下载到本地磁盘。
1.这个伪代码应该可以解释它。

if( downloadedFile ) {
  const shareMenu = new ShareMenu( { filePaths: [pathToFileOnDisk] } );
  shareMenu.popup();
} else {
  const shareMenu = new ShareMenu( { urls: [urlFromBrowser] } );
  shareMenu.popup();
}

之后,一个上下文菜单将在活动浏览器窗口中打开[另一种方法是在调用shareMenu.popup()时指定目标窗口,如文档中所示]。
当选择应用程序时,URL或下载的文件将被发送到目标应用程序进行共享,菜单将关闭。
这是基本的答案。如果你得到了这个工作,尝试一些选项,从API文档的ShareMenu。另一个页面从文档,无论出于何种原因,没有链接到该页面是构造参数为新的ShareMenu(sharingItem
我认为最困难的部分将是设置处理IPC的东西。这段代码需要在主进程中运行,但菜单需要显示在窗口中。IPC是关键。

相关问题