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方案指定编辑器角色李>
- 为应用程序采用但不采用的方案指定查看器角色 定义
- 指定应用程序的标识符
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);
}