自定义指令唤醒Electron应用

2020-08-05  本文已影响0人  我叫Aliya但是被占用了
  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上有兼容性问题

上一篇下一篇

猜你喜欢

热点阅读