Xcode 实现一个url-sheme协议

Xcode 实现一个url-sheme协议,xcode,url-scheme,Xcode,Url Scheme,我知道在Xcode中很容易创建url方案。 如我输入tg://123,电报就会打开。 如何实现自定义url方案(如hello://),然后打开我的程序 有没有办法做到这一点?我还没有找到任何解决方案。XCode自定义URL方案 以下文件/内容由提供 我只是在文档/内容的行中添加了一些细节 通过执行以下操作支持自定义URL方案: myphotoapp:albumname?name=”albumname” myphotoapp:albumname?index=1 注册你的URL方案 以下文件/文件

我知道在
Xcode
中很容易创建url方案。
如我输入
tg://123
,电报就会打开。
如何实现自定义url方案(如
hello://
),然后打开我的程序

有没有办法做到这一点?我还没有找到任何解决方案。

XCode自定义URL方案 以下文件/内容由提供

我只是在文档/内容的行中添加了一些细节

通过执行以下操作支持自定义URL方案:

myphotoapp:albumname?name=”albumname”
myphotoapp:albumname?index=1
注册你的URL方案 以下文件/文件由以下人员提供:

  • 在“URL方案”框中指定用于URL的前缀
  • 为你的应用选择一个角色:
    • 为您定义的URL方案指定编辑器角色
    • 为应用程序采用但不采用的方案指定查看器角色 定义
  • 指定应用程序的标识符
有关详细参考和逐步检查自定义URL方案的信息,请检查

更新QT自定义URL方案 要为
QtWebEngine
实现自定义URL方案,首先必须创建
QWebEngineUrlScheme
的实例,并使用
QWebEngineUrlScheme::registerScheme()
注册它

注意:确保在实例化
QGuiApplication
QApplication
对象之前创建并注册scheme对象

然后必须创建一个从QWebEngineUrlSchemeHandler派生的类,并重新实现
requestStart()
方法

最后,通过
QWebEngineProfile::installUrlSchemeHandler()
QQuickWebEngineProfile::installUrlSchemeHandler()
安装scheme处理程序对象


我认为这个问题与Qt无关,而是与您的操作系统有关,因为如果您使用的是另一个不是Qt的库,并且您希望这样做,那么答案必须是相同的。正确。我在想Qt5中是否有一个通用库可以实现这一点。Qt5不是用来配置操作系统的。这就是操作系统的任务。这是关于深度链接吗?@Coel请检查我对doc.qt.io提供的自定义URL方案文档的更新答案。我提到了一些代码供您参考,但是如果您想查看完整文档并按照我回答中的给定链接逐步处理,那么所提到的内容是针对
XCode
的,而不是针对
Qt5
。调用
myscheme://
仍然无法打开应用程序。如何像
Xcode
那样注册协议?
class MySchemeHandler : public QWebEngineUrlSchemeHandler
{
public:
    MySchemeHandler(QObject *parent = nullptr);
    void requestStarted(QWebEngineUrlRequestJob *request)
    {
        // ....
    }
};

int main(int argc, char **argv)
{
    QWebEngineUrlScheme scheme("myscheme");
    scheme.setSyntax(QWebEngineUrlScheme::Syntax::HostAndPort);
    scheme.setDefaultPort(2345);
    scheme.setFlags(QWebEngineUrlScheme::SecureScheme);
    QWebEngineUrlScheme::registerScheme(scheme);

    // ...
    QApplication app(argc, argv);
    // ...

    // installUrlSchemeHandler does not take ownership of the handler.
    MySchemeHandler *handler = new MySchemeHandler(parent);
    QWebEngineProfile::defaultProfile()->installUrlSchemeHandler("myscheme", handler);
}