Мы разработали приложение для редактирования фотографий, используя 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?
Спасибо за ваше время.