我知道在Xcode
中创建网址方案很容易。就像我输入tg://123
,电报将打开。如何实现类似hello://
的自定义网址方案,我的程序将打开?
有没有办法实现这一目标?我还没有找到任何解决方案。
以下文档/内容由https://developer.apple.com提供。
我只是放置了文档/内容的一些细节行。
通过执行以下操作来支持自定义URL方案:
myphotoapp:albumname?name=”albumname”
myphotoapp:albumname?index=1
下面的文件/文件由doc.qt.io提供
[有关更多参考和逐步检查自定义URL方案,请检查https://developer.apple.com
要为QtWebEngine
实现自定义URL方案,您首先必须创建QWebEngineUrlScheme
的实例并使用QWebEngineUrlScheme::registerScheme()
注册它。
注意:请确保在实例化QGuiApplication
或QApplication
对象之前创建并注册方案对象。
然后您必须创建一个从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);
}