我们有一个签署交易的电子加密应用程序(除其他外) .
我们希望其他网站能够拥有一个打开该电子应用程序的按钮,预先填入一些参数(交易信息) .
流程是:
-
用户在some-crypto-site.com上单击"make transcation"
-
电子应用程序打开预填充的参数
-
用户在电子应用中单击"sign transaction"
-
电子应用程序幕后工作
-
电子应用程序关闭并向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这样做?
在此先感谢您的帮助,我不知道如何在这里进行修改!
1 回答
由于这可能与我在工作中所做的相关,我决定试一试 . 我只在OSX上测试了这个!
我看了app.setAsDefaultProtocolClient的文档,它说:
使用
electron-builder
打包应用程序时,可以定义这些协议 . 见build
:在你的主线程中:
在您的渲染器线程中:
请注意使用remote API访问主线程中导出的
getLink
函数Example
这也允许您从命令行启动:
How do you get back to the original caller?
我想当你启动应用程序时,你可以包含来电者网址:
当您的电子应用程序完成处理数据时,它只会ping回该网址
Credits
我的大部分发现都基于:
来自GitHub issue
和来自@oikonomopo的excellent work