自定义指令唤醒Electron应用
2020-08-05 本文已影响0人
我叫Aliya但是被占用了
- electrion端
const protocol = /myapyy:\/\/myevent/;
const emitWeb = async () => {
// 通知渲染进程
};
// 注册自定义协议
app.setAsDefaultProtocolClient('myapyy', process.execPath, ['--']);
// 监听 mac only
app.on('open-url', async (event, url) => {
event.preventDefault();
if (protocol.test(url || '')) emitWeb();
});
// 监听 win only
app.on('second-instance', (event, argv) => {
// Windows 下通过协议URL启动时,URL会作为参数,所以需要在这个事件里处理
if (process.platform === 'win32') {
argv.find((arg) => {
if (!protocol.test(arg || '')) return undefined;
emitWeb();
return true;
});
}
});
- 网页端
location.href = 'myapp://myevent'
如果想在没有应用时走下载,需要在electron中启动一个端口,在网页上去检查。那些失去焦点得到焦点什么的在chrome上有兼容性问题