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

View File

@ -1,6 +1,7 @@
#include <flutter/dart_project.h> #include <flutter/dart_project.h>
#include <flutter/flutter_view_controller.h> #include <flutter/flutter_view_controller.h>
#include <windows.h> #include <windows.h>
#include <tchar.h>
#include <iostream> #include <iostream>
#include "flutter_window.h" #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 // only do uni links when dispatch a rustdesk links
auto prefix = std::string(uniLinksPrefix); auto prefix = std::string(uniLinksPrefix);
if (!command_line_arguments.empty() && command_line_arguments.front().compare(0, prefix.size(), prefix.c_str()) == 0) { 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) { if (hwnd != NULL) {
DispatchToUniLinksDesktop(hwnd); DispatchToUniLinksDesktop(hwnd);