私はPhoneGapを使用してiPhoneアプリに取り組んでいます。
このアプリでは、カメラロールの写真を含む画面を表示する必要があり、ユーザーはそこから複数の写真を選択できる必要があります。
I を使用するnavigator.camera.getPicture
とすべての画像を表示できますが、ユーザーはその画像から 1 つの画像しか選択できません。
返される imageURI は次のとおりです。
file://localhost/var/mobile/Applications/946FDEC2-E166-4209-94F8-5E2C70EEDA71/tmp/cdv_photo_010.jpg
そして、以下のようにファイルAPIで試しました。
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){
// success get file system
var sdcard = fileSystem.root;
sdcard.getDirectory("../../../Media/DCIM/100APPLE",
{create:false, exclusive: false},
function(dcim){
var directoryReader = dcim.createReader();
directoryReader.readEntries(function(entries){
// success get files and folders
for(var i=0; i<entries.length; ++i){
alert(entries[i].name);
}
});
}, function(error){
switch(error.code){
case FileError.NOT_FOUND_ERR : alert('NOT_FOUND_ERR');break;
case FileError.SECURITY_ERR: alert('SECURITY_ERR');break;
case FileError.ABORT_ERR: alert('ABORT_ERR');break;
case FileError.NOT_READABLE_ERR: alert('NOT_READABLE_ERR');break;
case FileError.ENCODING_ERR: alert('ENCODING_ERR');break;
case FileError.NO_MODIFICATION_ALLOWED_ERR: alert('NO_MODIFICATION_ALLOWED_ERR');break;
case FileError.INVALID_STATE_ERR: alert('INVALID_STATE_ERR');break;
case FileError.SYNTAX_ERR: alert('SYNTAX_ERR');break;
case FileError.INVALID_MODIFICATION_ERR: alert('INVALID_MODIFICATION_ERR');break;
case FileError.QUOTA_EXCEEDED_ERR: alert('QUOTA_EXCEEDED_ERR');break;
case FileError.TYPE_MISMATCH_ERR: alert('TYPE_MISMATCH_ERR');break;
case FileError.PATH_EXISTS_ERR: alert('NOT_FOUND_ERR');break;
}
});
これはシミュレーターで動作します。
しかし、iPhone で試してみると、エラーが表示され、iPhoneDCIM
内にフォルダがありません../../../Media
。
私のiPhoneのモデルはiPhone 4S 16Gb with iOS 6.0
私が知りたいのですが
- このアプローチに問題はありますか?
../../../Media/DCIM/100APPLE
カメラロールの写真が保存されている場所ではなく、正しいパスはどれですか?- 上記のパスが格納されているメタファイルはありますか?
- これを達成する他の方法はありますか (カメラロールから複数のファイルを選択するオプション)?