SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

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

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

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

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

 

対象読者

  • スマホアプリに挑戦したいと思っている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 エラーが発生したときのエラーメッセージ

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
カメラ・アルバムにアクセスするためのプラグイン

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9780 2016/11/25 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング