前提・実現したいこと
Cordovaを使って、Android/iOSのストレージの空き容量を取得したい。
Monaca&Angularを利用して、業務アプリを作成中です。
その機能の1つとして、Zipファイルのダウンロードと解凍処理があるのですが、
解凍前にストレージの空き容量をチェックしたい。
発生している問題・エラーメッセージ
iOSの場合に、以下のエラーメッセージが出力される。
{"line":1, "column": 1358, "sourceURL": "file:///var/mobile/Containers/Data/Application/3030B68F-.../Library/Caches/.../www/app.js"}
Androidの場合は、エラーが出ずに、空き容量が取得できている模様。
該当のソースコード
Monaca&Angular
1 disk() { 2 if (cordova.platformId == 'android') { 3 // Androidの処理 4 console.log("Android - External"); 5 var options = {location: 1}; 6 DiskSpacePlugin.info(options, (info) => this.OnSuccessExt(info), (info) => this.OnError(info)); 7 8 console.log("Android - Internal"); 9 options = {location: 2}; 10 DiskSpacePlugin.info(options, (info) => this.OnSuccessInt(info), (info) => this.OnError(info)); 11 12 } else if (cordova.platformId == 'ios') { 13 // iOSの処理 14 console.log("iOS - Internal"); 15 DiskSpacePlugin.info(null, (info) => this.OnSuccessInt(info), (info) => this.OnError(info)); 16 } else { 17 // 18 } 19 } 20 21 OnSuccessExt(info) { 22 console.log(JSON.stringify(info)); 23 this.externalApp = info.app/1024/1024/1024; 24 this.externalTotal = info.total/1024/1024/1024; 25 this.externalFree = info.free/1024/1024/1024; 26 } 27 28 OnSuccessInt(info) { 29 console.log(JSON.stringify(info)); 30 this.internalApp = info.app/1024/1024/1024; 31 this.internalTotal = info.total/1024/1024/1024; 32 this.internalFree = info.free/1024/1024/1024; 33 } 34 35 OnError(info) { 36 console.log(info); 37 }
試したこと
Disk Space Plugin(sqli-cordova-disk-space-plugin)
https://www.npmjs.com/package/sqli-cordova-disk-space-plugin
上記プラグインを利用して、Disk Spaceを取得してみたが、iOSの場合のみ、上記エラーが発生しています。
optionsの値を、null以外にも、options = {location: 1};
試してみたが、状況は変わりません。
このプラグイン以外での実現でも構いません。
あなたの回答
tips
プレビュー