質問: monacaにて、ローカルファイルを選択してパスを取得する方法がわかりません。 具体的には、端末にある音声ファイルを選択し、アプリに登録したいと考えています。 画像に関してはCameraプラグインという便利なものがありますが、 画像以外のファイルについては、同様のことをどのように実現すればよいでしょうか? よろしくお願いします。
回答: 別の方法です. `` を含むページを作れば,そこからファイル選択ダイアログが出せます.そこで選んだファイルを,このinput要素から何らかの方法で取得してやればよいはずです. AngularJS なら,ngModel と類似した機能を持つ fileModel という以下のようなディレクティブを定義すれば,適当な変数にバインドできます. ``` app.directive('fileModel',function($parse){ return{ restrict: 'A', link: function(scope,element,attrs){ var model = $parse(attrs.fileModel); element.bind('change',function(){ scope.$apply(function(){ model.assign(scope,element[0].files[0]); }); }); } }; }); ``` ( から引用) HTML側では, ``` ``` のようにすれば,`src`にfileオブジェクトがバインドされます.