先日投稿した、「cordova-plugin-file-opener2」を使って端末内のファイルを開く方法の、iOSバージョンです。
思ったよりも簡単に実装できました。
プラグインはこちらからご確認ください。
GitHub – pwlin/cordova-plugin-file-opener2: A File Opener Plugin for Cordova
https://github.com/pwlin/cordova-plugin-file-opener2
ちなみに先日の投稿についてはこちらから。
【Cordova】端末内のファイルを開くプラグイン「cordova-plugin-file-opener2」
https://cpoint-lab.co.jp/article/201812/【cordova】端末内のファイルを開くプラグイン「cordova-plugin-file-op/
さて、実装方法ですが、コード自体は下記のとおりです。
let filePath = [開きたいファイルのパス]; if (window.device.platform === 'Android') { filePath = filePath.replace(/^file:\/\//, ''); } window.cordova.plugins.fileOpener2.open( filePath, 'image/png', { error: function() { // エラー時の処理 }, success: function() { // 成功時の処理 }, } );
異なる点は開きたいファイルを指定しているパス値のみで、それ以外は先日に投稿したコードとほぼ同じです。
Android と iOS では開くファイルのパス指定方法が異なるので、まずは端末が Android なのか iOS なのかを判断します。
上記のコードでは、3行目にあたります。
使用しているプラグインは「cordova-plugin-device」です。
GitHub – apache/cordova-plugin-device: Apache Cordova Plugin device
https://github.com/apache/cordova-plugin-device
device.platform
で、Android や iOS などの、プラットフォームを示す文字列が取得できるので、それを使って判断しています。
で、Androdだったら、文頭についている file://
をとり、iOS だったらそのままです。
あとは、取得・整形したファイルパスとファイルのMIMEタイプを fileOpener2 のプラグインで指定して、ファイルを開く処理を実行します。
そうすれば、指定したファイルが展開されるはずです。
以上、iOSで端末に保存されたファイルを開く方法でした。
Androidは、サンプルコードから文頭の file://
が不要ということが分かったのですが、iOSの指定方法が見つけられず…。
で、試しに取得したファイルパスを加工せず、そのまま指定したところ、問題なく実行されたという次第です。
行き当たりばったりな気もしますが、動いたので問題なし!ということにします。
ということで、Android・iOSの両端末でのファイル展開機能の実装については、これで対応が完了です。