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

Другие вопросы по тегам