2016-12-16 5 views
2

У меня есть кнопка, которая onclick класса функция getImage(); и он падает, когда я вызываю это на моем iphone 7 плюс, у которого есть ios 10. Может кто-то, пожалуйста, скажите мне, почему это происходит, и дайте мне правильный код, чтобы остановить это. Вот код, который у меня есть на данный момент, который использовался для работы и работает над более старыми ios и Android.PhoneGap камера не работает на ios 10

navigator.camera.getPicture функция сбоев на устройстве ios 10.

function getImage() { 
     // Retrieve image file location from specified source 
     navigator.camera.getPicture(uploadPhoto, 
      function(message) { 
       alert('get picture failed'); 
      }, { 
       quality: 80, 
       destinationType: navigator.camera.DestinationType.FILE_URI, 
       sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY, 
       correctOrientation : true, 
       allowEdit: true 
       } 
     ); 

    } 

    function uploadPhoto(imageURI) { 



     //function sendPhoto(filetype){ 

      var options = new FileUploadOptions(); 
      options.fileKey="file"; 
      //get file name 
      options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1); 

      //Check if the device is android or not and if it is use the folowing code 
      var devicePlatform = device.platform; 


      if(devicePlatform == "Android"){      
       //check file extension 
       options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1)+".jpeg"; 






      } 



      var params = new Object(); 

      params.value1 = "Babatunde"; 
      params.value2 = "param"; 

      options.params = params; 
      options.chunkedMode = false; 

      var ft = new FileTransfer(); 
      ft.upload(imageURI, "uploadUserPhoto.php", win, fail, options); 

     //Part of the commment out function sendPhoto 
     //} 
    } 

    function win(r) { 
     console.log("Code = " + r.responseCode); 
     console.log("Response = " + r.response); 
     console.log("Sent = " + r.bytesSent); 
     alert(r.response); 
    } 

    function fail(error) { 
     alert("An error has occurred: Code = " + error.code); 
    } 
+0

Вы добавили разрешение на доступ камеры в файл 'info.plist'? См. Этот ответ: http://stackoverflow.com/a/38498347/6449750 –

ответ

2

Вы должны добавить это разрешение в Info.plist для прошивки 10

Камера:

Ключа: Безопасность - камеры Использования Описания
Стоимость: $ (PRODUCT_NAME) камеры использование

Key: Privacy - Photo Library Использование Описание
Стоимость: $ (PRODUCT_NAME) фото Использование

0

Причина, почему приложение падает на iOS10 и не на ранних версиях, потому что вам нужно добавить разрешения для камеры и альбома. Вам нужно добавить разрешения на ваш info.plist

Фото:

Key  : Privacy - Photo Library Usage Description  
Value : $(PRODUCT_NAME) photo use 

Камера:

Key  : Privacy - Camera Usage Description 
Value : $(PRODUCT_NAME) camera use 

Для списка ключей, которые необходимо указать в info.plist в этом Apple's documentation