Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

カメラとアルバムから写真データを取得するプラグインを使う

Apache Cordovaで本格スマホアプリに挑戦しよう 第10回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/11/25 14:00

 前回もカメラを使って写真や映像データを扱うためのプラグインを紹介しましたが、今回はカメラと写真(ビデオも含む)アルバムにアクセスするためプラグインを紹介します。すでに端末内にある写真を取り出すケースやその場で写真をとって選択する場合などのケースでは今回紹介するプラグインの方が使いやすいプラグインです。

目次
 また、このプラグインはこちらの記事でもサンプルアプリの中で紹介しましたので、すでに使ったことがある方も多くいることと思います。

 

対象読者

  • スマホアプリに挑戦したいと思っているWeb開発者
  • アプリ開発をもっと楽にしたいと思っている方
  • 業務スマホアプリを作る開発者

Androidでのファイル名に関する問題を解決するためのプラグイン

 本題に入る前に、Androidでのメディアファイルのファイルパスに関するプラグインを紹介します。

 Androidでは、画像ファイルなどのパスを取得すると、「content://」というスキームが使われます。このスキームはCordova上のJSやHTML上ではアクセスすることができないため、そのままでは使えません。そのため実体のファイルのパス、つまり、「file://」スキームで扱える形式になることが望ましいのですが、その変換を行うプラグインです。

 今回紹介するカメラプラグインに限らず、Androidで既存のメディアファイルなどを扱う場合に同様の問題が発生することもあるので、その場合にはぜひ利用してみてください。

インストール方法

 インストールするプラグインは、「cordova-plugin-filepath」です。インストールはリスト1のように行います。

リスト1 プラグインのインストール
$cordova plugin add cordova-plugin-filepath

プラグインの使い方

 このプラグインはパスを変換するだけなので、とても簡単に利用することができ、リスト2に示すメソッドのみになります。

リスト2 resolveNativePathメソッド
window.FilePath.resolveNativePath(filepath,successCallback, errorCallback)

 表1で示すパラメータが指定できます。

表1 resolveNativePathメソッドの引数
パラメータ名 説明
filepath 変換するためのファイルパス(content://で始まる文字列を指定)
successCallback 変換に成功した場合のコールバック関数。変換されたファイルパスが引数に設定
errorCallback 変換に失敗した場合のコールバック関数

 実際の利用はリスト3のように使用します。

リスト3 cordova-plugin-filepathの利用例
var filename = "content://....";
// 変換用のメソッド
window.FilePath.resolveNativePath(filename, function(path){
    //  引数(path)ではfile://への変換後のパス名が取得できる
},function(err){
    //  エラー
    console.log(err.code + ":" + err.message);
});

 また、エラーが発生した場合は表2のようなプロパティを持つオブジェクトが取得できます。

表2 エラーオブジェクト
プロパティ名 説明
code 値が0の場合にはパスの変換が失敗。1の場合にはファイルがローカルに存在
message エラーが発生したときのエラーメッセージ

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:Apache Cordovaで本格スマホアプリに挑戦しよう

もっと読む

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5