Files
MWClash/lib/common/link.dart
chen08209 4e679f776e Optimize performance
Update core

Optimize core stability

Fix linux tun authority check error

Fix some issues
2025-03-05 10:21:51 +08:00

49 lines
1.0 KiB
Dart

import 'dart:async';
import 'package:app_links/app_links.dart';
import 'print.dart';
typedef InstallConfigCallBack = void Function(String url);
class LinkManager {
static LinkManager? _instance;
late AppLinks _appLinks;
StreamSubscription? subscription;
LinkManager._internal() {
_appLinks = AppLinks();
}
initAppLinksListen(installConfigCallBack) async {
commonPrint.log("initAppLinksListen");
destroy();
subscription = _appLinks.uriLinkStream.listen(
(uri) {
commonPrint.log('onAppLink: $uri');
if (uri.host == 'install-config') {
final parameters = uri.queryParameters;
final url = parameters['url'];
if (url != null) {
installConfigCallBack(url);
}
}
},
);
}
destroy() {
if (subscription != null) {
subscription?.cancel();
subscription = null;
}
}
factory LinkManager() {
_instance ??= LinkManager._internal();
return _instance!;
}
}
final linkManager = LinkManager();