Разрешение на первое использование cordova-plugin-camera (Image Picker) на iOS11 не запрашивается - PullRequest
0 голосов
/ 05 июля 2018

Мы разработали приложение для редактирования фотографий, используя phonegap и vanilla javascript, и построили с использованием buildgap build. Это приложение обычно использует cordova-plugin-camera для захвата фотографий и выбора фотографий с камеры. В среде тестирования мы используем реальные устройства для обеих платформ, Android и iOS. Это прекрасно работает в Android, однако в iOS11 плагин НЕ запрашивает разрешение на первое использование при использовании средства выбора изображений, пользователи могут получить прямой доступ к своей камере. Мы не заметили этого на этапе тестирования, команда разработчиков приложений обратила внимание на эту проблему, так как приложение не запрашивает у пользователя разрешения перед доступом к конфиденциальной информации.

Этот код не запрашивает разрешение на первое использование на iOS11, когда приложение построено на основе телефонной пробелы (xcode9)

navigator.camera.getPicture(onSuccess, onFail, {
  destinationType: Camera.DestinationType.FILE_URI,
  sourceType: Camera.PictureSourceType.PHOTOLIBRARY
  });

Нет проблем с использованием Camera.PictureSourceType.CAMERA, так как плагин способен правильно обрабатывать проблему с разрешениями. Стоит отметить, что мы реализовали все описания разрешений, требуемые для iOS10 +, в * -Info.plist, а также во время установки плагина. Более того, мы заметили, что приложение не падает на iOS11.4, если эти описания были опущены в файлах конфигурации.

<engine name="ios" spec="latest" />
<preference name="phonegap-version" value="cli-8.0.0" />
<preference name="target-device" value="handset" />
<preference name="TARGETED_DEVICE_FAMILY" value="1" />
<preference name="IPHONEOS_DEPLOYMENT_TARGET" value="10.0" />

Мы проверили это на iphone 7, iphone 8 и iphone X с последним обновлением iOS11.4, и все они дали одинаковые результаты, разрешения не спрашивали.

Мы протестировали плагин cordova-imagePicker от Telerik Team, и он хорошо работает с разрешением при первом использовании, однако мы заметили, что они не реализовали откат, если пользователь отклонил запрос, приложение вылетит.

Так, кто-нибудь заметил это недавно? Любые подсказки, как с этим бороться? Это вызвано сборкой PhoneGap?

Спасибо за ваше время.

1 Ответ

0 голосов
/ 05 июля 2018

добрый день. У меня была похожая проблема с камерой плагина с Cordova, когда я начал его использовать. Я был в состоянии использовать XCode и скомпилировал их и смог найти то, чего не хватает. Введенное ниже разрешение - это код, предоставленный XCode.

 <plugin name="cordova-plugin-camera" spec="^4.0.2">
   <variable name="CAMERA_USAGE_DESCRIPTION" value="Use Camera" />
   <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="Select Photo" />
 </plugin>

Приведенный выше код будет запрашивать у пользователя разрешение на использование камеры и галереи, если вам это нужно.

Надеюсь, это поможет вам.

...