ちょっと今更な感じはありますが、アプリでカメラを起動する、またはギャラリーから写真を選択できる「cordova-plugin-camera」のご紹介です。
GitHubのページは下記からどうぞ。
GitHub – apache/cordova-plugin-camera: Apache Cordova Plugin camera
https://github.com/apache/cordova-plugin-camera
Qiitaの記事ではこちらがおすすめです。
[*Cordova*] カメラプラグインを使ってみる – Qiita
https://qiita.com/cigalecigales/items/b81e95065982acb8aede
少し古い記事ですが、とても分かりやすいです。
さて、使い方です。
まずインストールですが、こちらのコマンドを実行します。
cordova plugin add cordova-plugin-camera
で、カメラを起動する場合は下記のように記述します。
// カメラを起動
navigator.camera.getPicture(
cameraSuccess,
cameraError,
{
quality: 100, // 写真のクオリティ(0~100)
destinationType: Camera.DestinationType.DATA_URL, // 戻り値のフォーマット
sourceType: Camera.PictureSourceType.CAMERA // カメラで撮影
}
);
// 写真撮影 成功
function cameraSuccess(result){
// 成功時の処理
var img = document.getElementById("image");
img.src = "data:image/jpeg;base64," + result;
}
// 写真撮影 失敗
function cameraError(error){
// エラー時の処理
}
カメラを起動する場合は、navigator.camera.getPicture() を実行します。
そして関数の第一引数では実行成功時に実行する関数を、第二引数では実行失敗時に実行する関数を指定します。
第三関数では関数のオプションを設定します。
今回は、写真のクオリティ・戻り値のフォーマット・ソースタイプを指定しています。
ソースタイプは、今回は Camera.PictureSourceType.CAMERA をしており、こちらは端末のカメラを起動しています。
なお、写真のライブラリを起動する場合は Camera.PictureSourceType.PHOTOLIBRARY で、アルバムを起動する場合は Camera.PictureSourceType.SAVEDPHOTOALBUM を指定します。
…写真ライブラリとアルバムはどう違うのか…今後検証したいと思います。
オプションはほかにもあり、外側 or 内側のカメラのどちらを起動するかや、写真撮影後に端末に画像を保存するかどうかも指定できます。
このあたりは、上で挙げた GitHub のページか Qiita の記事をご確認ください。
カメラプラグインの基本的な使い方は以上です。
が、個人的にはカメラ起動かギャラリー起動かを選べるとなおいいのですが…そういうプラグインは見つけられず…。
何かいい方法はないものか、現在模索中です。