【问题标题】:Custom url protocol for OSX desktop app using electron by atomOSX 桌面应用程序的自定义 url 协议,使用 electron by atom
【发布时间】:2016-11-20 06:07:30
【问题描述】:

我是电子桌面应用程序的新手。但是,我使用this source code 构建了一个桌面应用程序,并且只是更改了指向我网站的链接。现在我有一个适用于 mac 的功能性桌面应用程序。

但我想使用 appName://and-some-link-follows

链接打开我的应用

当我点击 appName://....

时,我如何实现自定义 url 架构以打开 dekstop 应用程序

例如: 我想做一些类似 Slack 桌面应用程序的事情,通过点击 slack://and-some-link

打开

请帮忙。在这里卡了2天。提前致谢。

【问题讨论】:

    标签: macos protocols desktop-application electron custom-url


    【解决方案1】:

    今天我遇到了类似的事情,在做一些研究后,我发现this useful tutorial 知道如何去做。它彻底解释了一切,我认为它可能对面临同样问题的其他人有用。这是亮点:

    const electron = require('electron')
    const protocol = electron.protocol
    // handles links `todo2://<something>`
    const PROTOCOL_PREFIX = 'todo2'
    function createWindow () {
      mainWindow = new BrowserWindow({width: 1000, height: 800})
      protocol.registerHttpProtocol(PROTOCOL_PREFIX, (req, cb) => {
        const fullUrl = formFullTodoUrl(req.url)
        devToolsLog('full url to open ' + fullUrl)
        mainWindow.loadURL(fullUrl)
      })
    
    }
    

    在我链接的帖子末尾还有一个关于如何为 OSXWindows 构建的指南。

    对于那些想了解更多信息的人,这里是official docs 的链接。

    【讨论】:

      【解决方案2】:

      我找到了。

      1. 为您的应用进行构建
      2. 右键->显示包内容
      3. 在 info.plist 中添加以下内容

      1. 打开应用一次,将 customURL 注册到系统中。

      在终端输入 /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -dump|egrep "(bindings.*:$)"|sort 进行检查不管你的在列表中。

      【讨论】:

      • 我已经完成了在运行实例上传递带有 'url-event 的 myapp://param。但尚未通过在 Safari/Chrome 等中输入 myapp://param URL 方案来启动 myapp!
      • 基本上我的应用程序刚刚启动,但没有通过 URL 方案!当应用实例存在时,它会通过方案!
      猜你喜欢
      • 2023-03-08
      • 2014-04-23
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多