У меня есть приложение Cordova (написанное для Android и iOS), которое отлично работает в производстве с большим количеством пользователей, в том числе на iOS 10.0 после необходимых мер безопасности в месяц или два назад. Теперь с более новыми обновлениями 10.1 (в настоящее время тестирование на 10.1.1) я нахожу, что попытки вызвать функцию захвата видео полностью разрушают Кордову, без возможности отладки с точки зрения JS. На стороне Android нет проблем. Это только с последним обновлением iOS, и не было обновлений кода или плагинов или изменений.
Мы используем новейший плагин cordova-plugin-media-capture , v1.4.0, с ngCordova. Звонки на этот плагин, чтобы сделать снимок через $cordovaCapture.captureImage
, отлично работают в iOS 10.1.1. Это всего лишь призывы к $cordovaCapture.captureVideo
, которые полностью и мгновенно разбивают Кордову. Я посмотрел на Xcode в случае, если есть какие-то новые или внеушные настройки, и все кажется правильным, поэтому приветствуем любые предложения по его решению.
Ранее (месяц или два назад) мы решили новый выпуск IOS 10 разрешений с помощью Cordova-плагин-настройки-крючок плагин с этими настройками IOS (фрагмент показан) в config.xml:
<platform name="ios">
<config-file parent="NSLocationWhenInUseUsageDescription" platform="ios" target="*-Info.plist">
<string>Reason goes here...</string>
</config-file>
<config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
<string>Reason goes here....</string>
</config-file>
<config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
<string>Reason goes here...</string>
</config-file>
Я подтвердил эти настройки с помощью Xcode. Параметры мы передаем в фактической вызов следующим образом:
$cordovaCapture.captureVideo
({
limit: 1, // how many clips to record (iOS must be 1)
duration: 300 // maximum length (in seconds) = 5 minutes
})
Надеясь кто-то удалось решить тот же вопрос и готов поделиться обходной путь.
FYI приложение было первоначально с использованием Кордова v6.2.0. Я обновился до последней версии v6.4.0 и протестирован, но получаю ту же проблему с iOS. –
Для двух людей, любезно предлагающих мне посмотреть разрешения микрофона. Я вырыл дальше, и это, по-видимому, является причиной его сбоя (из отчета о сбое.) Что-то должно быть прикручено где-то, поскольку у меня есть оба параметра config.xml, и я могу видеть на Xcode также, что строка причины присутствует, но приложение, похоже, не имеет его. –
Попытался сохранить настройки микрофона в файле config.xml, затем «corova clean ios», а затем перестроить и запустить. Сделал трюк, и теперь я могу записывать видео снова. Таким образом, основная проблема заключалась в настройке микрофона, но в процессе сборки было еще что-то еще. –