2017-03-13 12 views
0

私は、Cordovaを使用してネイティブのAndroidアプリケーションにWebアプリケーションを移植しようとしています。それはかなり簡単です、主に接続されたデバイスにミディメッセージを送信するだけです。私はWebMidi APIがAndroid上のWebkitの最近のバージョンでのみサポートされていることを知っています。私は5.1でテストしています。私はChromeの元のWebバージョンをデバイス上で実行することで基本が機能することを証明できました。うまくいきます。Cordova AndroidでWebMidiでSysExメッセージを使用することはできますか?

Cordovaで実行しているときの問題は、何らかの理由でメッセージ自体が送信されず、エラーもなく、ただそこに届かないという問題です。私はAPIが動作していることを知っています。アプリケーションの別の部分が接続されているデバイスをリストし、ドロップダウンリストを表示します。これはうまく動作し、接続されたMIDIデバイスを認識します。しかし、私はメッセージを送信するとき、彼らはミディデバイスに望ましい効果を持っていません。それらはSysExメッセージです。これは追加のアクセス権が必要であると信じています。android.webkit.resource.MIDI_SYSEXは、これがChromeで有効になっていても、Cordovaアプリケーションでは有効ではありませんか?私は./config.xmlと./platform/android/AndroidManifest.xmlにこのアクセス許可を追加しようとしましたが、役に立たないとは思われません。また、追加のアクセス許可として表示されませんインストール時。

さまざまな検索に基づいて、私はCrosswalkプラグインをインストールしようとしましたが、デバイスリストでさえそうすることはできませんでした。

どのようなご意見もあります。

答えて

0

あなたが直面している問題は、特定の基準を満たさない限り、midi sysexの許可を求めるメッセージが表示されなくなることです。あなたは、ローカルホスト経由でWebミディコードにアクセスするか、https URLでアクセスする必要があります。 Sysexは潜在的に有害であるため、最小限のセキュリティ要件としてこれを使用しています。

私は自分のdev PCにURLを開いてアンドロイドで作業していました(自己署名SSL証明書を使用しています)。それはsysexのためのセキュリティのプロンプトを与え、期待どおりに動作するので、アンドロイド上のクロムは確かに動作します。クロスウォーク・コルドバは、私はそれほど確信していません。

私はコードサーバーのアプリケーション(Androidの場合)で127.0.0.1:8080のWebサーバーを起動し、Chromeを使用して(同じデバイスで別途)小さなWebサーバーを実行しようとしました。魅力的に近いと感じますが、 my appで実行する必要があります。

ウェブサーバーのURL(http://127.0.0.1:8080)でiFrameを実行しようとして失敗しました。それはちょうど見つからない。セキュリティ上のエラーはありませんので、ホワイトリストには関係していないようですが、それをさらに確認する必要があります。

webserverプラグインは正常に実行されているようですが、アプリ内からは表示されません。

あなたはthisとの遊びを持っている、そしてそれはどこでもあなたを取得かどうかを確認する必要があり...

それとも、アプリ自体の中から見える別のものを見つけることができます。 代替方法として、ソケットサーバーを使用してコンピュータに接続し、MIDIデバイスを接続する方法があります。確かに携帯ではありません!

関連する問題