이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
안녕하세요.앱인토스미니앱에서webkitSpeechRecognition(WebSpeechAPI)
이 동작하지 않는 문제로 문의드립니다.
환경
-
디바이스: iPhone (iOS)
- 토스 앱 최신 버전 / 콘솔에 .ait 업로드후테스트
-프레임워크: @apps-in-toss/web-framework v2.5 (WebView 미니앱)
현상
실제 토스 앱 WebView 에서 다음 코드를 실행하면
start()직후 즉시
error: service-not-allowed가 발생합니다.const SR = window.webkitSpeechRecognition;
const recog = new SR();
recog.lang = ‘ko-KR’;
recog.continuous = true;
recog.interimResults = true;
recog.addEventListener(‘error’, (e) => console.log(e.error));
recog.start(); // → 즉시 ‘service-not-allowed’ 발생진단 로그
화면에 SR 이벤트 stage 를 노출하도록 디버그 빌드를 만들어 확인한 결과,
다음 순서로 종료됩니다.SR=ok → start()ok → error:service-not-allowed → end
audiostart / soundstart / speechstart / result 이벤트는 한 번도 발생하지
않습니다. 즉 SR 객체는 노출되지만 음성 인식 서비스 호출 자체가 차단된
상태로 보입니다.기존 답변과의 차이
이전 커뮤니티 글에서 “WebView 환경은 일반 Web API 사용 제한 없음,
navigator.mediaDevices.getUserMedia 로 마이크 사용 가능” 이라는 답변을
보았습니다. getUserMedia (마이크 권한 / 녹음) 는 정상 동작합니다.
저희가 막혀 있는 것은 그 위 레이어의 webkitSpeechRecognition
(녹음된 음성을 텍스트로 변환) 입니다. 둘은 별개의 Web API 입니다.원인 추정
iOS WKWebView 의 SpeechRecognition 은 native 앱 (이 경우 토스 앱) 의
Info.plist 에 NSSpeechRecognitionUsageDescription 키가 선언되어 있어야
작동하는 것으로 알고 있습니다. 토스 앱이 이 권한을 선언하지 않은 상태일
가능성이 높아 보입니다.확인 요청
- iOS 토스 앱 WebView 에서 webkitSpeechRecognition (Web Speech API) 가
공식적으로 지원되는지 여부 - 미지원이라면 Android 토스 앱에서는 동작하는지 (플랫폼별 차이 여부)
- 가이드 문서 권한 페이지에 “대부분의 표준 Web API” 라고 표기되어 있는데,
미지원되는 Web API 목록을 별도로 제공해주실 수 있는지 - 토스 SDK 차원에서 STT (음성→텍스트) 기능을 제공할 계획이 있는지,
또는 미니앱 측에서 권장하는 대체 방안 (예: 서버 STT 우회 등)
D-5 마감인 챌린지 출품작 (음성 일기 미니앱) 의 핵심 채점 로직에 관련된
이슈라 빠른 답변 부탁드립니다. 감사합니다. - 토스 앱 최신 버전 / 콘솔에 .ait 업로드후테스트