WebView에서 파일 선택 시, 기본 기능 부재로 onShowFileChooser()를 활용해야 함
Intent를 사용하여 시스템 FileChooser를 호출하고, 파일 선택 결과를 처리함
권한 처리를 위해 FLAG_GRANT_READ_URI_PERMISSION을 설정하여 파일 접근 권한을 부여함
onShowFileChooser()는 WebView 내 파일 선택 요청 시 호출되는 콜백 함수이다. 구체적으로, HTML <input type="file"> 태그 클릭 시 안드로이드 시스템이 해당 함수를 호출한다. 따라서, 이 함수를 오버라이드하여 파일 선택 Intent를 실행하고, 결과를 처리해야 한다.
단일 파일 선택은 Intent.data를 통해 선택된 파일의 URI를 반환한다. 반면, 복수 파일 선택은 Intent.clipData를 통해 여러 파일의 URI 목록을 전달한다. 따라서, FileChooserParams의 MODE_OPEN_MULTIPLE 여부에 따라 다른 방식으로 데이터를 처리해야 한다.
파일 선택 후, 파일 접근을 위해 FLAG_GRANT_READ_URI_PERMISSION 권한을 부여해야 한다. 구체적으로, takePersistableUriPermission() 함수를 사용하여 권한을 영구적으로 획득한다. 따라서, content URI에 대한 접근 권한 관리는 데이터 무결성 및 보안을 위해 매우 중요하다.