ダウンロード サンプルファイル (432.4 KB)
前回もカメラを使って写真や映像データを扱うためのプラグインを紹介しましたが、今回はカメラと写真(ビデオも含む)アルバムにアクセスするためプラグインを紹介します。すでに端末内にある写真を取り出すケースやその場で写真をとって選択する場合などのケースでは今回紹介するプラグインの方が使いやすいプラグインです。
対象読者
- スマホアプリに挑戦したいと思っているWeb開発者
- アプリ開発をもっと楽にしたいと思っている方
- 業務スマホアプリを作る開発者
Androidでのファイル名に関する問題を解決するためのプラグイン
本題に入る前に、Androidでのメディアファイルのファイルパスに関するプラグインを紹介します。
Androidでは、画像ファイルなどのパスを取得すると、「content://」というスキームが使われます。このスキームはCordova上のJSやHTML上ではアクセスすることができないため、そのままでは使えません。そのため実体のファイルのパス、つまり、「file://」スキームで扱える形式になることが望ましいのですが、その変換を行うプラグインです。
今回紹介するカメラプラグインに限らず、Androidで既存のメディアファイルなどを扱う場合に同様の問題が発生することもあるので、その場合にはぜひ利用してみてください。
インストール方法
インストールするプラグインは、「cordova-plugin-filepath」です。インストールはリスト1のように行います。
$cordova plugin add cordova-plugin-filepath
プラグインの使い方
このプラグインはパスを変換するだけなので、とても簡単に利用することができ、リスト2に示すメソッドのみになります。
window.FilePath.resolveNativePath(filepath,successCallback, errorCallback)
表1で示すパラメータが指定できます。
| パラメータ名 | 説明 |
|---|---|
| filepath | 変換するためのファイルパス(content://で始まる文字列を指定) |
| successCallback | 変換に成功した場合のコールバック関数。変換されたファイルパスが引数に設定 |
| errorCallback | 変換に失敗した場合のコールバック関数 |
実際の利用はリスト3のように使用します。
var filename = "content://....";
// 変換用のメソッド
window.FilePath.resolveNativePath(filename, function(path){
// 引数(path)ではfile://への変換後のパス名が取得できる
},function(err){
// エラー
console.log(err.code + ":" + err.message);
});
また、エラーが発生した場合は表2のようなプロパティを持つオブジェクトが取得できます。
| プロパティ名 | 説明 |
|---|---|
| code | 値が0の場合にはパスの変換が失敗。1の場合にはファイルがローカルに存在 |
| message | エラーが発生したときのエラーメッセージ |
この記事は参考になりましたか?
- Apache Cordovaで本格スマホアプリに挑戦しよう連載記事一覧
- この記事の著者
-
WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)
< WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
