实现url sheme协议

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

我知道在Xcode中创建网址方案很容易。就像我输入tg://123,电报将打开。如何实现类似hello://的自定义网址方案,我的程序将打开?

有没有办法实现这一目标?我还没有找到任何解决方案。

xcode url-scheme
1个回答
0
投票

XCode自定义URL方案

以下文档/内容由https://developer.apple.com提供。

我只是放置了文档/内容的一些细节行。

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

myphotoapp:albumname?name=”albumname”
myphotoapp:albumname?index=1

注册您的URL方案

下面的文件/文件由doc.qt.io提供

  • 在“ URL方案”框中指定用于URL的前缀。
  • 为您的应用选择角色:
    • 为您定义的URL方案指定编辑者角色。
    • 为您的应用采用但不采用的方案指定查看者角色定义。
  • 为您的应用指定标识符。

[有关更多参考和逐步检查自定义URL方案,请检查https://developer.apple.com

更新QT自定义URL方案

QT Custom URL Scheme

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

注意:请确保在实例化QGuiApplicationQApplication对象之前创建并注册方案对象。

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

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

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.