前提・実現したいこと
Monacaでファイル操作プラグイン(File API)を使用してディレクトリ内のファイルの表示を行おうとしています。
下記コードでiOSでは正常に動作しますが、Androidではエラーコード5(encoding error)となります。
https://teratail.com/questions/139343
にあるように期待と異なるパスが取得されているようですが、そのために生じている問題なのでしょうか。
エミュレータでの検証のため、実機でなら正常に動作するのか、しない場合はどのように修正すべきなのか御教授いただけないでしょうか。
該当のソースコード
javascript
1ons.ready(async () => { 2 // ディレクトリを取得 3 const dir = await getDir(); 4 // ディレクトリ内にあるファイルを取得 5 const files = await getFiles(dir); 6 // ファイルを一覧表示 7 showFiles(files); 8}); 9 10// ファイル一覧を表示 11const showFiles = (files) => { 12 const ary = []; 13 for (const file of files) { 14 if (!file.isFile) continue; 15 ary.push(` 16 <ons-list-item class="file"> 17 ${file.name} 18 </ons-list-item> 19 `); 20 } 21 $('#files').empty().html(ary.join('')); 22} 23 24// ローカルのファイル一覧を取得 25const getFiles = async (dir) => { 26 return new Promise((res, rej) => { 27 const reader = new DirectoryReader(dir.toURL()); 28 reader.readEntries(res, fail); 29 }); 30} 31 32// ディレクトリを取得 33const getDir = async () => { 34 return new Promise((res, rej) => { 35 const dir = `${cordova.file.dataDirectory}`; 36 resolveLocalFileSystemURL(dir, res, rej); 37 }); 38} 39 40function fail(error) { 41 alert('エラーが発生しました。エラーコード: ' + error.code); 42} 43 44 45
試したこと
https://docs.monaca.io/ja/reference/cordova_6.5/file/
リファレンスにあるAndroidのディレクトリはどれを試しても同様の結果でした
補足情報(FW/ツールのバージョンなど)
MonacaクラウドIDEで開発
Cordova のバージョンは 7.1.0 です
AndroidエミュレータBlueStacks(ver.4.70.0.1102:Samsung Galaxy S8 Plus)内でmonacaデバッガーで検証
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/01 02:58