本文中,苏南大叔将要说明,如何在electron中实现伪协议。通过本文的学习,您就可以在网页里面,拉起你本地的electron程序了。当然,还可以根据伪协议传递的不同参数,而做出不同的具体electron行为,本文中的功能代码可以说是非常实用了,建议大家多多练习。

苏南大叔:electron如何注册伪协议?伪协议的检测及删除 - electron-fake-protocal
electron如何注册伪协议?伪协议的检测及删除(图2-1)

本文测试环境:win10electron@5.0.1。本文内容,支持macwindows,在苏南大叔的测试中,暂时不支持centos。支持macwindows的函数中,部分参数仅仅支持windows

设置伪协议

开启伪协议的代码非常简单,以注册一个伪协议sunan为例,就如下几行就可以了。

主进程main.js

const {app} = require('electron')
app.setAsDefaultProtocolClient("sunan");

函数的原型是:

app.setAsDefaultProtocolClient(protocol[, path, args])

所以,大家可以看到:

所以,上面的函数等同于如下变形:

app.setAsDefaultProtocolClient("sunan",process.execPath);
app.setAsDefaultProtocolClient("sunan",process.execPath,[]);

如果您的目的就是调用起您的electron,而不需要进一步区分处理的话,这里的代码就足够了。另外,如果第一次成功设置了伪协议,第二次再次设置伪协议的时候,并不会重复操作。这一点上是比较智能的。

大多数情况(高版本+生产环境)下来说,args设置为[]即可。但是对于低版本或者非生产环境来说,这个args是有很多学问的,设置为[]会出一些问题。目前,这个事情暂时不在本文讨论范围内。

注意事项

win系统中,伪协议的实现,是通过写注册表的方式来实现的。注册表的写入操作,共有两次写入。可能会被360之类的软件拦截掉,所以,请注意允许相关的注册表操作才可以。

详细的原理描述,可以参见下面的链接:

如果您需要根据不同的参数,进一步区分electron的后续行为的话,您还需要对传递过来的参数做进一步的处理。

结束语

本文的测试环境是win10,在其他的操作系统中,实际上还是有特殊情况的。所以,本文就做个开山篇,对于其他操作系统的特殊情况,苏南大叔会做后续补充说明。mac下可以注册协议成功,但是调试模式下并不符合预期。centos下协议直接注册失败...

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron

本站的忠实读者小伙伴,正在阅读下面这些文章: