美文网首页
Electron开发: Electron 自定义协议

Electron开发: Electron 自定义协议

作者: you的日常 | 来源:发表于2022-04-18 17:07 被阅读0次

    1. 协议: 从网页端唤起Electron应用

    Elelctron 提供了一个方式来自动唤起 Electron应用,这一次就让我们来学学如何通过连接来唤起Electron 应用,并且我们可以使用这个功能来做点什么

    1.1 协议唤起示例:

    image.png

    1.2 什么是协议

    Electron 注册的协议, Electron 会将协议注册到系统的协议列表中,它是系统层级的 API,只能在当前系统下使用, 其他未注册协议的电脑不能识别。

    Electron 的 app 模块提供了一些处理协议的方法, 这些方法允许您设置协议和取消协议, 来让你的应用成为默认的应用程序。

    1.3 协议的作用

    注册一个协议到系统协议中, 当通过其他应用/浏览器网页端打开新协议的链接时,浏览器会检测该协议有没有在系统协议中, 如果该协议注册过,然后唤起协议的默认处理程序(我们的应用)

    1.4 注册协议: app.setAsDefaultProtocolClient

    协议需要在ready事件后注册,具体代码如下.

    // 注册自定义协议
    const { app } = require('electron')
    const path = require('path')
    
    // 注册自定义协议
    function setDefaultProtocol() {
      const agreement = 'electron-playground-code' // 自定义协议名
      let isSet = false // 是否注册成功
    
      app.removeAsDefaultProtocolClient(agreement) // 每次运行都删除自定义协议 然后再重新注册
      // 开发模式下在window运行需要做兼容
      if (process.env.NODE_ENV === 'development' && process.platform === 'win32') {
        // 设置electron.exe 和 app的路径
        isSet = app.setAsDefaultProtocolClient(agreement, process.execPath, [
          path.resolve(process.argv[1]),
        ])
      } else {
        isSet = app.setAsDefaultProtocolClient(agreement)
      }
      console.log('是否注册成功', isSet)
    }
    
    setDefaultProtocol()<
    

    1.5 使用协议

    使用方式: 在浏览器地址栏输入注册好的协议,即可唤起应用。

    协议唤起的链接格式: 自协议名称: //参数

    比如上文注册: electron-playground-code 协议,触发时会默认带上 ://

    在使用的时候, 需要在浏览器地址栏输入:

    electron-playground-code://1234
    // 1234是参数 可根据业务自行修改
    

    相关文章

      网友评论

          本文标题:Electron开发: Electron 自定义协议

          本文链接:https://www.haomeiwen.com/subject/duatertx.html