Framework7 + phonegap + запрос разрешения камеры

Я использую этот плагин https://github.com/dpa99c/cordova-diagnostic-plugin в течение длительного времени и работает нормально. В настоящее время я использую framework7, и это здорово. У меня есть этот код для запроса разрешения камеры, который отлично работает

  onDeviceReady: function() {


            cordova.plugins.diagnostic.requestCameraAuthorization(
                function(status){

                    console.log("Authorization request for camera use was " + (status == cordova.plugins.diagnostic.permissionStatus.GRANTED ? "granted" : "denied"));

                    if (myApp.device.ios) { 

                             cordova.plugins.diagnostic.isCameraRollAuthorized(function(authorized){
                              if (!authorized) {
                                   cordova.plugins.diagnostic.requestCameraRollAuthorization(function(granted){

                                   }, function(error){
                                      console.log("Authorization request for camera roll has error " + error.code + " - "+ err.msg);
                                   });

                              }
                            });
                      }

                }, function(error){
                    console.error("The following error occurred: "+error);
                }, false
            );   

но после разрешения камере делать снимки мое приложение зависает, я могу писать в поле ввода, но когда я нажимаю любую кнопку/ссылку, ничего не происходит. У меня нет консольных ошибок и бывает только на iOS. Если перезапустить приложение, все работает нормально. Я также пытаюсь добавить этот плагин:

<gap:plugin name="cordova-plugin-ios-camera-permissions" source="npm" > 
  <variable name="CAMERA_USAGE_DESCRIPTION" value="La aplicacion requiere el permiso para tomar fotografias." />
  <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="La aplicacion requiere el permiso para acceder a la lista de fotografias." />
</gap:plugin>

person chispitaos    schedule 24.05.2017    source источник


Ответы (1)


Если перезапустить приложение, все работает нормально

Это похоже на возможный симптом проблемы, вызванной недостаточными привилегиями в CSP на iOS 10. Подробности и полный ответ см. в этом вопросе. , но в двух словах убедитесь, что ваш метатег Content-Security-Policy содержит gap://ready и file, например:

<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file:; style-src fonts.googleapis.com 'self' 'unsafe-inline'; img-src framework7.io 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval'">
person DaveAlden    schedule 27.05.2017
comment
Эта строка вызывает у меня следующие проблемы: Отказано в загрузке таблицы стилей 'fonts.googleapis.com/ css?family=Roboto:300,400,500,700", потому что это нарушает следующую директиву политики безопасности контента: style-src 'self' 'unsafe-inline'. Отказано в загрузке таблицы стилей 'fonts.googleapis.com/icon?family=Material+Icons', так как это нарушает следующую директиву Content Security Policy: style-src 'self' 'unsafe-inline'. Отказался загружать изображение 'framework7.io/i/logo-new.png' потому что это нарушает следующую директиву Content Security Policy: img-src 'self' data:. - person chispitaos; 30.05.2017
comment
iOS 10 теперь строго применяет правила CSP, поэтому, пока вы не создадите правильный белый список, ваше приложение не будет работать должным образом. Чтобы избежать этих ошибок, вам необходимо внести соответствующие домены в белый список в вашей политике безопасности контента. Я отредактировал приведенный выше пример CSP, чтобы проиллюстрировать это для ваших конкретных ошибок. - person DaveAlden; 30.05.2017