- Replace flutter_appauth with custom WebView implementation to resolve deep link issues - Add KeycloakWebViewAuthService with integrated WebView for seamless authentication - Configure Android manifest for HTTP cleartext traffic support - Add network security config for development environment (192.168.1.11) - Update Keycloak client to use HTTP callback endpoint (http://192.168.1.11:8080/auth/callback) - Remove obsolete keycloak_auth_service.dart and temporary scripts - Clean up dependencies and regenerate injection configuration - Tested successfully on multiple Android devices (Xiaomi 2201116TG, SM A725F) BREAKING CHANGE: Authentication flow now uses WebView instead of external browser - Users will see Keycloak login page within the app instead of browser redirect - Resolves ERR_CLEARTEXT_NOT_PERMITTED and deep link state management issues - Maintains full OIDC compliance with PKCE flow and secure token storage Technical improvements: - WebView with custom navigation delegate for callback handling - Automatic token extraction and user info parsing from JWT - Proper error handling and user feedback - Consistent authentication state management across app lifecycle
41 lines
1.8 KiB
CMake
41 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.14)
|
|
project(runner LANGUAGES CXX)
|
|
|
|
# Define the application target. To change its name, change BINARY_NAME in the
|
|
# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer
|
|
# work.
|
|
#
|
|
# Any new source files that you add to the application should be added here.
|
|
add_executable(${BINARY_NAME} WIN32
|
|
"flutter_window.cpp"
|
|
"main.cpp"
|
|
"utils.cpp"
|
|
"win32_window.cpp"
|
|
"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
|
|
"Runner.rc"
|
|
"runner.exe.manifest"
|
|
)
|
|
|
|
# Apply the standard set of build settings. This can be removed for applications
|
|
# that need different build settings.
|
|
apply_standard_settings(${BINARY_NAME})
|
|
|
|
# Add preprocessor definitions for the build version.
|
|
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"")
|
|
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}")
|
|
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}")
|
|
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}")
|
|
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}")
|
|
|
|
# Disable Windows macros that collide with C++ standard library functions.
|
|
target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX")
|
|
|
|
# Add dependency libraries and include directories. Add any application-specific
|
|
# dependencies here.
|
|
target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)
|
|
target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib")
|
|
target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
|
|
|
|
# Run the Flutter tool portions of the build. This must not be removed.
|
|
add_dependencies(${BINARY_NAME} flutter_assemble)
|