WebView 프록시 재정의에 의존하는 탐색은 재정의의 완료 리스너가 실행된 뒤에 시작해야 합니다. 설정한 뒤 곧바로 페이지를 로드하면 작업이 비동기 업데이트와 경쟁하게 됩니다.

  1. WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE)을 확인합니다. 지원 여부는 WebView 구현과 AndroidX WebKit 라이브러리, 그리고 Android의 API 수준에 따라 달라집니다. 지원되지 않을 때 어떻게 할지 정의하세요. 조용히 직접 연결하면 기능이 무력화될 수 있습니다.
  2. 문서화된 프록시 규칙, 엔드포인트 구문, 바이패스 동작으로 원하는 ProxyConfig을 구성합니다. 허용된 공개 사이트 탐색에는 무료 프록시 목록에서 해당 WebView 구현이 지원하는 규칙과 프로토콜이 일치하는 후보를 고르세요. PAC URL, SOCKS URI, 호스트 이름만 있는 입력은 서로 다릅니다.
  3. 해당 구성, 실행기, 완료 리스너로 ProxyController.setProxyOverride()을 호출합니다. 의존하는 탐색은 완료 경로에서 시작하세요.
  4. 임시 재정의가 끝나면 clearProxyOverride()으로 해제하고 그 비동기 완료도 처리합니다.

이 수명 주기에 책임자를 한 명 두세요. 이 설정은 애플리케이션 프로세스 전체의 WebView에 적용되므로, 반복해서 바꾼다고 해서 동시에 존재하는 두 뷰에 독립적인 출구를 줄 수는 없습니다. 다른 프로세스와 HTTP 라이브러리에는 각자의 경로가 있습니다.

이 지원 인터페이스는 Android 릴리스마다 다른 비공개 프록시 변경 리스너에 대한 의존을 피합니다. 라우팅을 선택하며, 프록시 자격 증명과 인증서 신뢰는 여전히 지원되는 방식을 사용합니다. 선택 후의 인증 또는 TLS 실패는 그 단계에서 진단해야 합니다.

관련 글