Ionic получить все миниатюры с рулона камеры
Я создаю приложение, в котором пользователь должен иметь возможность выбирать фотографии из своей камеры.
Я знаю, что могу использовать плагин Cordova-Camera для выбора одной фотографии за раз или плагин Cordova-ImagePicker для выбора нескольких фотографий, но я хочу, чтобы я хотел, чтобы вы могли видеть все изображения в приложении.
На Android я использовал плагин cordova-gallery-api, приложение было немного изменчивым с полноразмерными изображениями, но отлично работает с миниатюрами.
Когда я попробовал API Gallery на IOS с установленным плагином, сборка не удалась с
** СТРОИТЬ НЕ УДАЧИ **
Сбой следующих команд сборки: Ld build/emulator/.app/ normal i386 (1 сбой) Код ошибки 65 для команды: xcodebuild с аргументами: -xcconfig,/platform /ios/cordova/build-debug.xcconfig,-project,.xcodeproj,ARCHS=i386,-target,,- конфигурация,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/platform /ios/build/emulator,SHARED_PRECOMPS_DIR=/ платформы /ios/build/sharedpch ERRR из платформ: Ошибка: /platform /ios/cordova/build: Сбой команды с кодом выхода 2 Возможно, у вас нет требуемой среды или ОС для сборки этого проекта Ошибка: /platform /ios/cordova/build: Сбой команды с кодом выхода 2
Ранее я нашел плагин Cordova-Camera-Roll, который, похоже, делал то же самое, но только для IOS. Я попробовал это, это работает; однако он возвращает только полноразмерные изображения, которые при прокрутке выглядят прерывисто.
Оба плагина, которые я пробовал, являются относительно старыми, и у меня нет большого опыта работы с Objective-C, если вы могли бы помочь изменить плагин прокрутки камеры, чтобы он возвращал миниатюры, или заставить плагин галереи работать на IOS, или предложить другой плагин это будет с благодарностью.
PS. для простоты использования функция Camera Roll
- (void)getPhotos:(CDVInvokedUrlCommand*)command
{
// Grab the asset library
ALAssetsLibrary *library = [IonicCameraRoll defaultAssetsLibrary];
// Run a background job
[self.commandDelegate runInBackground:^{
// Enumerate all of the group saved photos, which is our Camera Roll on iOS
[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
// When there are no more images, the group will be nil
if(group == nil) {
// Send a null response to indicate the end of photostreaming
CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:nil];
[pluginResult setKeepCallbackAsBool:YES];
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
} else {
// Enumarate this group of images
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
NSDictionary *urls = [result valueForProperty:ALAssetPropertyURLs];
[urls enumerateKeysAndObjectsUsingBlock:^(id key, NSURL *obj, BOOL *stop) {
// Send the URL for this asset back to the JS callback
CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:obj.absoluteString];
[pluginResult setKeepCallbackAsBool:YES];
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}];
}];
}
} failureBlock:^(NSError *error) {
// Ruh-roh, something bad happened.
CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:error.localizedDescription];
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}];
}];
}
Спасибо
1 ответ
Спасибо за помощь.
Gallery-api работал как есть, мне просто нужно было включить модули в Xcode