質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Q&A

0回答

422閲覧

Cordovaを使って、Android/iOSのストレージの空き容量を取得したい

NakamuraKei

総合スコア22

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

0グッド

0クリップ

投稿2019/07/16 07:02

編集2019/07/16 07:07

前提・実現したいこと

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};試してみたが、状況は変わりません。

このプラグイン以外での実現でも構いません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oikashinoa

2019/07/16 07:11

options = {}で通ります? locationはアンドロイドのみらしいので指定無しでやってみてください
NakamuraKei

2019/07/16 07:21

oikashinoaさん 早速の返信ありがとうございます。 ```options = {};```を試してみましたが、同じくエラーが発生します。 引き続き、よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問