【发布时间】:2019-05-01 00:38:30
【问题描述】:
我们有一个电子加密应用程序可以签署交易(除其他外)。
我们希望其他网站能够有一个按钮来打开该电子应用程序,并预先填充一些参数(交易信息)。
流程是:
- 用户在 some-crypto-site.com 上点击“进行交易”
- electron 应用程序打开并带有预填充的参数
- 用户在电子应用中点击“签署交易”
- electron 应用在幕后做事
- electron 应用程序关闭并向 some-crypto-site.com 发送消息
这可以在运行时或安装时完成。
我尝试了什么(linux、chrome)
用this gist的代码调用app.setAsDefaultProtocolClient,基本上就是:
app.setAsDefaultProtocolClient("my-app")
但是在我将my-app://foo?bar=baz 放入 chrome 浏览器后,我得到以下弹出窗口,并且按 open-xdg 什么都不做(除了关闭弹出窗口)
我看过
- Electron protocol api 似乎只处理应用内协议
- webtorrent .desktop file这可能是要走的路,我只是不知道该怎么做。
也许有办法在安装时通过electron builder 这样做?
提前感谢您的帮助,我不知道如何在此处继续!
可能有用的资源
- github repo with mac+window example
- github comment for linux
- github comment for linux 2
- SO answer for all 3 OSs
- SO windows answer
- npm package for windows registery
- SO mac answer
- SO linux answer
- microsoft docs for windows
- windows article
- github comment for windows
- github comment for mac
- info.plst for mac
- old repo for mac and win
【问题讨论】:
-
调用
app.setAsDefaultProtocolClient("my-app"),然后用my-app://foo?bar=baz打开它,结果调用"your/path/electron.exe my-app://foo?bar=baz"。 delectron.exe 会将其第一个参数作为应用程序路径,因此它不起作用。 -
@hiitiger 感谢您的评论,我不明白您在说什么。你能澄清一下吗?
-
您好,我不确定您是否真的可以从 chrome 中打开 Electron 应用程序,但如果它已经打开,您可以向它发送内容。可以吗?