アプリ内で使用するデータのバックアップやリカバリーを行う場合、ファイルのアクセスが必要となります。
そこで、Androidでファイルの読み込み・書き込み・ファイル一覧を取得する方法について紹介したいと思います。
※iOSのビルド環境がないため、Androidのみとなります。

ファイルアクセスには2つのプラグインが必要です。
Monacaの場合、有料プランの契約が必要となりますので、ご注意ください。
※2020/06/07追記

cordova.plugins.diagnosticプラグイン


アプリが外部ストレージにアクセスする権限を取得するため、requestExternalStorageAuthorizationメソッドを利用します。
これにより、[Download]フォルダなど特定のフォルダにアクセスする権限を取得することができます。

cordova-plugin-fileプラグイン


ファイルの読み込み・書き込みなどを行います。

cordova-plugin-ionic-keyboardプラグイン


入力時にキーボードが表示された場合、キーボードの上にタブバーが表示されるため、キーボード表示・非表示のイベント発火でタブバーの制御を行います。
※ファイルのアクセスには直接関係ありません。

※2020/06/07追記
config.xmlの2行目にあるwidgetに以下のコードを追加します。

config.xml

config.xmlに以下のコードを追加します。

config.xml

動作確認のアプリを作成します。

index.html

style.css

app.js

そして、ファイルにアクセスするモジュールfile.jsです。

file.js

実際にアプリをビルドしてAndroidにインストールします。

[LIST]タブをタップし、ツールバーの[Download]フォルダのファイル一覧を取得するアイコン、または[Pictures]フォルダのファイル一覧を取得するアイコンをタップします。

アクセスの権限を取得するメッセージが表示されます。[許可]をタップします。

ファイル一覧が表示されます。

[R/W]タブをタップし、メッセージを入力して[WRITE]ボタンをタップすると、[Download]フォルダにtest.txtというファイルが作成されます。
[Appned]スイッチをONにすると、追記でファイルに書き込みされます。
[READ]ボタンをタップすると、test.txtというファイルを読み込み、メッセージを表示します。

「アプリのコードを見せてほしい」「開発を手伝ってほしい」などさまざまなリクエストをたくさんいただいており、であればモジュールfile.js有料公開しようと思いましたが、今回は特別に無料公開とします。
そのため、使い方などの説明は省略させていただきます。
MonacaのProプランにてデバッグビルドを行い、Android au SHV40 + Chrome DevToolsにて動作確認済みです。

Recommended Posts