2017-03-13 6 views
0

저는 Cordova를 사용하여 웹 응용 프로그램을 기본 Android 응용 프로그램으로 이식하려고합니다. 그것은 매우 간단합니다. 주로 미디 메시지를 연결된 장치로 보냅니다. WebMidi API는 Android의 Webkit 최신 버전에서만 지원된다는 것을 알고 있으며 5.1에서 테스트를 마쳤습니다. Chrome에서 기기의 원본 웹 버전을 실행하여 기본 작업을 수행했음을 증명할 수있었습니다. 정상적으로 작동합니다.Cordova Android에서 WebMidi에서 SysEx 메시지를 사용할 수 있습니까?

Cordova에서 실행될 때의 문제는 메시지 자체가 어떤 이유로 든 전송되지 않고 오류도없고 그냥 도착하지 않는 것입니다. 응용 프로그램의 별도 부분이 연결된 장치를 나열하고 선택할 수있는 드롭 다운 목록을 표시하므로 API가 작동하고 있음을 알고 있습니다.이 장치는 제대로 작동하며 연결된 Midi 장치를 인식합니다. 그러나 메시지를 보내면 미디 장치에 원하는 효과가 없습니다. 그것들은 SysEx 메시지이며, 추가 권한이 필요하다고 믿습니다. android.webkit.resource.MIDI_SYSEX는 Chrome에서 가능하지만 Cordova 애플리케이션에서는 사용할 수 없습니까? 이 권한을 ./config.xml 및 ./platform/android/AndroidManifest.xml에 추가하려고했지만 아무런 효과가없는 것으로 보이며 추가 권한으로 표시되지 않습니다. 설치 될 때.

다양한 검색 결과를 바탕으로 Crosswalk 플러그인 설치를 시도했지만 장치 목록이 아예 작동하지 않습니다.

의견을 환영합니다.

답변

0

당신이 직면 한 문제는 특정 기준을 충족시키지 않으면 미디 sysex 권한에 대한 메시지가 표시되지 않는다는 것입니다. 로컬 호스트를 통해 웹 미디 코드에 액세스하거나 https URL에서 액세스해야합니다. Sysex는 잠재적으로 해가되므로 최소 보안 요구 사항으로 사용했습니다.

내 dev PC에 내 URL을 열어서 안드로이드에서 작업했습니다 (자체 서명 된 SSL 인증서를 사용하여 wamp에 있음). sysex에 대한 보안 프롬프트를 제공하고 예상대로 작동하므로 안드로이드의 크롬이 확실히 작동합니다. 횡단 보도 코르도바 그러나, 나는 그렇게 확신하지 않는다.

내 cordova 앱 (안드로이드)에서 작은 웹 서버를 실행하고 웹 서버를 127.0.0.1:8080에서 시작한 다음 크롬을 사용하여 (동일한 장치에서 별도로) 연결했습니다. 탄탈처럼 가까운 느낌이지만, 내 앱에서 실행해야합니다!

웹 서버 URL (http://127.0.0.1:8080)로 iFrame을 실행하려는 시도가 실패했습니다. 그것은 단지 발견되지 않았습니다. 보안 오류가 없으므로 화이트 리스팅과 관련이없는 것처럼 보입니다. 확실히 살펴볼 필요가 있습니다.

웹 서버 플러그인이 성공적으로 실행 중이지만 앱 내에서 볼 수 없습니다.

당신은 this와 함께 놀이를하고, 어디를 얻을 수 있는지 ...

을 아니면 당신은 응용 프로그램 자체 내에서 볼 수있는 다른 일을 찾을 수 있습니다. 다른 방법은 소켓 서버를 사용하여 컴퓨터에 연결하고 midi 장치를 연결하는 것입니다. 정확하지 않은 휴대용!