在 Mac 上为 Cocoa / Qt 应用程序实现自定义协议

问题描述 投票:0回答:1

我们希望能够从浏览器链接调用我们的应用程序(就像当您打开团队会议的链接时 MS 团队所做的那样)。

原理非常简单,并且已经存在很长一段时间了。在 Windows 下,这仅包含几个注册表项(如何在 Windows 中注册自定义 URL 协议?)。

但是我在 Mac 上尝试过的任何方法都不起作用。 请参阅 Mac 自定义协议在某些计算机上失败https://web.archive.org/web/20091215155410/http://www.xmldatabases.org/WK/blog/1154_Handling_URL_schemes_in_Cocoa.item(非常旧.. .)

我了解到我们需要:

  1. 将 CFBundleURLTypes 添加到 pInfo.list
  2. 添加一个由 MacO 调用的处理程序。

但我根本无法让它工作。 在将所需条目添加到 CFBundleURLTypes 后,我的应用程序既不会启动,也不会调用我们应用程序中的此类处理程序。

相关应用程序使用 QtWidgets,因此应用程序中的代码是 C++ / Objective-C。

是否有人有一个工作示例项目或链接,可以使用 Objective-C 甚至 Qt 来实现此目的?

c++ objective-c macos qt
1个回答
0
投票

您需要向目标添加 URL(项目 > 目标 > 信息 > URL 类型)[此处示例]

然后,按照此指南并运行您的应用程序。在浏览器中输入您的 urlscheme (yourAppName://open),Safari 会询问您是否要打开该应用程序。这适用于 Objective-c 应用程序,我不知道 QT 是什么(希望不是 QuickTime)..

另外,我个人会避免使用 10 多年前的 SO 问题作为参考,自那以后发生了很多事情:)

© www.soinside.com 2019 - 2024. All rights reserved.