win: fix potential bugs

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou 2022-10-31 16:35:14 +08:00
parent 0db60865c4
commit e6d4e5b42c
2 changed files with 16 additions and 17 deletions

View File

@ -1210,23 +1210,21 @@ Future<void> initUniLinks() async {
}
}
StreamSubscription listenUniLinks() {
if (Platform.isWindows || Platform.isMacOS) {
final sub = uriLinkStream.listen((Uri? uri) {
if (uri != null) {
callUniLinksUriHandler(uri);
} else {
print("uni listen error: uri is empty.");
}
}, onError: (err) {
print("uni links error: $err");
});
return sub;
} else {
// return empty stream subscription for uniform logic
final stream = Stream.empty();
return stream.listen((event) {/*ignore*/});
StreamSubscription? listenUniLinks() {
if (!(Platform.isWindows || Platform.isMacOS)) {
return null;
}
final sub = uriLinkStream.listen((Uri? uri) {
if (uri != null) {
callUniLinksUriHandler(uri);
} else {
print("uni listen error: uri is empty.");
}
}, onError: (err) {
print("uni links error: $err");
});
return sub;
}
void checkArguments() {

View File

@ -1,6 +1,7 @@
#include <flutter/dart_project.h>
#include <flutter/flutter_view_controller.h>
#include <windows.h>
#include <tchar.h>
#include <iostream>
#include "flutter_window.h"
@ -54,7 +55,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
// only do uni links when dispatch a rustdesk links
auto prefix = std::string(uniLinksPrefix);
if (!command_line_arguments.empty() && command_line_arguments.front().compare(0, prefix.size(), prefix.c_str()) == 0) {
HWND hwnd = ::FindWindow(L"FLUTTER_RUNNER_WIN32_WINDOW", L"rustdesk");
HWND hwnd = ::FindWindow(_T("FLUTTER_RUNNER_WIN32_WINDOW"), _T("RustDesk"));
if (hwnd != NULL) {
DispatchToUniLinksDesktop(hwnd);