2

다소 성가신 문제가 있습니다. 고객 프로젝트의 경우 HTML5/JavaScript (고객 사양)를 사용하여 일종의 "연설 종료"탐지가 필요합니다. 그래서 나는 약간의 조사와 생각을했습니다. "SpeechRecognition API를 사용해 봅시다."그리고 "onspeechend"-Event입니다. 내 컴퓨터에서는 매력처럼 작동하지만 응용 프로그램 자체에서는 작동하지 않습니다. 내 연구 중에 나는 당신이 당신의 Apps 내에서 사용하는 WebView가 실제로 Systems 기본 브라우저가 아니라는 것을 발견했습니다.Android, WebView 및 SpeechRecognition-API

은 기본 브라우저의 사용자 에이전트는 SpeechRecognition-API가에 사용할 수 있는지, 웹보기-의 userAgent이

Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G900F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36

방해 부분은 반환, 나에게 반환

Mozilla/5.0 (Linux; Android 6.0.1; SM-G900F Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.68 Mobile Safari/537.36 그러나

기본 브라우저이지만 WebView- 인스턴스에는 없습니다. 누구든지이 문제를 해결하는 방법/해결 방법?

또는 어떤 아이디어, 연설의 끝을 감지하는 방법. 불행하게도 SpeechRecognition-Intent를 사용하는 것은 선택 사항이 아닙니다. 그런 식으로하고 싶습니다만, 언급 한 바와 같이 고객은 HTML5/JavaScript로이 작업을해야한다고 주장합니다.

+0

네이티브 메소드를 사용하지 않아도되는 이유는 무엇입니까? – Force

+0

고객이 "다른 웹 기반 응용 프로그램의 코드를 재사용"하기를 원하기 때문입니다. 요청하지 마라. 나는 이것 때문에 즐겁지 않다. 왜냐하면 이것이 필요한 것보다 훨씬 많은 일을하기 때문이다. – codingbuddha

+0

네이티브를 전혀 사용하지 않고 Cordova App을 사용하는 것이 좋습니다. * 참고로, 때로는 1 개의 코드베이스가 훌륭하지만, 가장 낮은 분모의 타협을 이끌어 내고, 위대한 것들을 놓치기 쉽습니다. * – Flummox

답변

0

webview가 기본 장치 렌더링 엔진 (in this answer)을 사용하고있는 것으로 보입니다. 그리고 기본 엔진은 Chrome 44를 기반으로합니다. Chrome 44는 기본 브라우저의 Chrome 54에서 사용할 수있는 사용하려는 API를 지원하지 않습니다.

렌더링 엔진의 다른 구현을 시도하십시오 (예 : Crosswalk). 앱에서 웹보기로 appropriate crosswalk release version으로 전환하면 특정 크롬 버전이 사용되도록 할 수 있습니다. 퍼가기는 apk 크기를 증가 시키지만 공유 모드를 사용하려면 사용자가 Google Play에서 횡단 보도를 설치해야합니다.