我知道在Xcode
中很容易创建一个URL方案。
就像我输入tg://123
一样,电报将打开。
如何实现类似hello://
的自定义网址方案,我的程序将打开?
有没有办法实现?我还没有找到任何解决方案。
答案 0 :(得分:0)
下面的文档/内容由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
对象之前创建并注册scheme对象。
然后,您必须创建一个从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);
}