이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
"iOS에서는 getUserMedia({audio:true}) 호출 시 마이크 권한 팝업이 정상적으로 뜨는데, Android에서는 팝업 자체가 뜨지 않습니다. Android WebView는 호스트 앱이 WebChromeClient.onPermissionRequest()에서 오디오 리소스를 명시적으로 grant해야 하는데, 이 부분이 누락된 것으로 보입니다. 카메라(device.openCamera)는 지원되는데 마이크만 안 되는 것도 이 가설과 일치합니다.
Android(WebView): 호스트 앱(토스)이 WebChromeClient.onPermissionRequest()를 명시적으로 구현해서 오디오 리소스에 대한 권한을 넘겨줘야만 마이크 권한 요청이 동작합니다. 이는 두 개 층이 각각 별도로 충족되어야 하는 구조로, iOS나 데스크톱에는 없는 Android WebView만의 특징입니다. 이걸 구현 안 해두면 웹 쪽에서 아무리 getUserMedia를 호출해도 권한 요청 자체가 조용히 무시되고, 팝업은 절대 뜨지 않습니다. (에러도 안 나고 그냥 멈춰있는 것처럼 보임)
즉, 토스 앱의 Android용 웹뷰 컨테이너 코드가 카메라(device.openCamera)에 대해서는 이 처리를 구현해뒀지만, 마이크(오디오)에 대해서는 아직 구현해두지 않았을 가능성이 매우 높습니다. iOS에서 되고 Android에서만 안 되는 증상이 이 설명과 정확히 일치합니다.
appName (선택)
englishspeaking