【问题标题】:Launching Electron app from a standard web browser从标准 Web 浏览器启动 Electron 应用程序
【发布时间】:2016-01-04 15:55:48
【问题描述】:

单击mailto: 链接将打开我的默认邮件客户端。以类似的方式,我想用my-app: 启动一个Electron 应用程序。如果未安装应用程序,实现此目标并优雅地回退到标准 http 链接的最佳方法是什么?

此外,我还希望能够通过一些额外的细节my-app:foo/bar。 Electron 启动时如何在其内部拦截它?

我已经阅读了一些关于我认为可能相关内容的文档:http://electron.atom.io/docs/v0.36.0/api/protocol/ 但是作为前端开发人员,我对总体流程的工作原理存在一些差距。非常感谢任何帮助!

【问题讨论】:

  • 你搞定了吗?我不能在 linux 和 chrome 上。
  • 这里没有公认的答案,所以你找到了一个可行的例子吗?

标签: electron


【解决方案1】:

自从这个问题首次发布以来,Electron 已经发展了很多。

您不再需要深入研究,并且可以跳过 Electron 协议 API。而是使用app.setAsDefaultProtocolClient(protocol[, path, args]) 接口及其兄弟app.removeAsDefaultProtocolClient(protocol[, path, args])app.isDefaultProtocolClient(protocol[, path, args])

这些使您能够注册协议标识符your-protocol:// 并接收参数:

整个链接,包括协议,将被传递给您的应用程序 作为参数。 Electron API docs

【讨论】:

  • 你有这个工作的例子吗?我试过了,它在 linux 和 chrome 上不适合我。
  • 你知道有没有办法像这样添加两个协议?我的意思是,那个电子应用程序会在 your-protocol_0:// 和 your-protocol_1:// 上打开?
  • 我实际上并没有尝试为一个应用注册多个协议,但是,我也没有找到任何迹象表明它为什么不应该工作。
【解决方案2】:

我不确定是否可以做你想做的事。取决于您是想从实际的浏览器窗口还是简单地从另一个 Electron 实例启动 Electron 应用程序。

我发现了另一个 Stack Overflow 帖子 link,它显示了一种解决方法(尽管我担心它不会优雅地默认任何东西)并解释了直接从浏览器启动程序是多么危险。

如果您想从另一个 Electron 应用程序启动您的 Electron 应用程序,但您可能需要查看 link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 2016-08-23
    相关资源
    最近更新 更多