22 lines
1.7 KiB
Markdown
22 lines
1.7 KiB
Markdown
# flutter_inappwebview_windows 0.6.0 사본 (JJ_MKVMaker 패치)
|
|
|
|
원본: https://pub.dev/packages/flutter_inappwebview_windows 0.6.0 (Apache-2.0, pubspec.yaml 의 dependency_overrides 로 사용)
|
|
|
|
## 고친 문제 (10/11)
|
|
원본의 C++ 쪽은 WebView2 의 다운로드 이벤트를 다루지 않아 `useOnDownloadStart` · `onDownloadStartRequest` 가 Windows 에서 듣지 않고,
|
|
WebView2 가 파일을 스스로 사용자 다운로드 폴더에 받는다. Tor 화면 (lib/ui/tor_page.dart) 은 받기를 하지 않고 안내만 보여야 한다.
|
|
|
|
## 수정
|
|
- `windows/in_app_webview/in_app_webview.cpp`: `ICoreWebView2_4::add_DownloadStarting`. 그 웹 뷰의 설정 `useOnDownloadStart` 가 켜져 있을 때만
|
|
`Cancel = TRUE` 로 받지 않고 Dart 의 `onDownloadStartRequest` (url · mimeType · contentLength) 로 알린다. 꺼져 있으면 (일반 브라우저) 원래대로.
|
|
- `windows/in_app_webview/webview_channel_delegate.h/.cpp`: `onDownloadStartRequest` 보내기 추가.
|
|
- example · test 폴더 제거.
|
|
고친 곳에는 `JJ_MKVMaker:` 주석을 달았다.
|
|
|
|
## 앱 안 프록시 인증 (10/11)
|
|
앱 안 프록시 (DNS 강제 · Tor 다리, 127.0.0.1) 는 같은 기기의 다른 앱이 쓰지 못하게 이번 실행의 비밀값으로 Basic 인증을 묻는다 (407, realm `JJ_MKVMaker`).
|
|
원본은 WebView2 의 인증 이벤트를 다루지 않아 프록시가 물으면 페이지를 열지 못한다.
|
|
- `in_app_webview_settings.h/.cpp`: 설정 `jjProxyAuth` ("아이디:비밀값@포트,포트").
|
|
- `in_app_webview.cpp`: `ICoreWebView2_10::add_BasicAuthenticationRequested`. 묻는 주소가 그 포트의 `127.0.0.1` 이고
|
|
challenge 의 realm 이 `JJ_MKVMaker` 일 때만 아이디 · 비밀값을 넣는다. 그 밖 (웹 사이트의 인증) 은 원래대로.
|