У нас есть приложение Ionic, которое обращается к $cordovaCamera
следующим образом:
$cordovaCamera.getPicture({ allowEdit: true });
Есть больше опций, переданных и т.д., но приведенное выше просто показывает, что мы передаем флаг allowEdit
. Если кто-то незнакомец, вот что docs говорит:
allowEdit. Разрешить простое редактирование изображения перед выбором. (Boolean)
Это прекрасно работает. После того, как я выберем картинку из галереи или сделаю снимок, она перейдет к собственному "редактированию" вида, где пользователь может обрезать изображение.
Здесь поток:
Take Photo > Edit (crop) > Upload to the interwebs
Select Photo > Edit (crop) > Upload to the interwebs
На Android вы можете изменить размер поля обрезки и перенести поле обрезки вокруг.
В iOS вы не можете перемещать поле обрезки (если только вы не увеличиваете масштаб), и вы не можете изменить размер поля обрезки.
Это просто причуда iOS, с которой нам нужно жить, или есть ли способ обойти это? Это происходит в iOS 8.3.
Скоро скриншоты
Изменить
Здесь показано видео, демонстрирующее проблему.
В 0:16 вы увидите, что невозможно переместить поле обрезки. (Это происходит на iPod Touch с iOS 8.2, но это также происходит на нескольких устройствах iPhone 6 с iOS 8.2 и 8.3). Однако это не происходит на Android. Таким образом, кажется разумным полагать, что это проблема с iOS на родном языке, а не проблема с Ionic/Cordova (или, может быть, проблема с тем, как Ionic взаимодействует с iOS).
В 0:22 вы будете, когда пользователь будет увеличивать масштаб изображения, тогда пользователь может реально переместить рамку обрезки.
Еще одно обновление (это важно)
Только при выполнении фото эта ошибка возникает. Когда вы выберите существующую фотографию из вашей библиотеки, инструмент обрезки работает как ожидалось...