Rabbit Remote Control
0.1.0-bate14
Toggle main menu visibility
Loading...
Searching...
No Matches
Plugins
WebBrowser
ProtocolManager
ProtocolManager.h
1
#pragma once
2
3
#include <QObject>
4
#include <QStringList>
5
#include <QMap>
6
#include <QUrl>
7
#include <QWebEngineProfile>
8
9
class
CProtocolManager :
public
QObject
10
{
11
Q_OBJECT
12
public
:
13
explicit
CProtocolManager(QObject *parent =
nullptr
);
14
15
// 获取所有已注册的协议
16
QStringList getAllRegisteredProtocols();
17
18
// 获取特定协议的默认处理程序
19
QString getDefaultHandlerForProtocol(
const
QString &protocol);
20
21
// 检查协议是否已注册
22
bool
isProtocolRegistered(
const
QString &protocol);
23
24
// 获取协议关联的应用列表
25
QStringList getApplicationsForProtocol(
const
QString &protocol);
26
27
// 获取所有协议及其关联应用
28
QMap<QString, QStringList> getAllProtocolsWithApps();
29
30
void
registerAllProcotol(QWebEngineProfile* profile = QWebEngineProfile::defaultProfile());
31
32
private
:
33
// 平台特定的实现
34
QStringList getRegisteredProtocolsLinux();
35
QStringList getRegisteredProtocolsWindows();
36
QStringList getRegisteredProtocolsMacOS();
37
void
scanDesktopFilesForProtocols(QStringList &protocols);
38
void
parseDesktopFile(
const
QString &filePath, QStringList &protocols);
39
40
// 辅助方法
41
QString getDefaultHandlerLinux(
const
QString &protocol);
42
QString getDefaultHandlerWindows(
const
QString &protocol);
43
QString getDefaultHandlerMacOS(
const
QString &protocol);
44
};
Author: Kang Lin (kl222@126.com)
Copyright (c) Kang Lin Studios All Rights Reserved