2016-10-09 10 views
1

Я создаю приложение с Cordova/Ionic. Пользователь может манипулировать своими галереями, которые затем отображаются в приложении.canvas.toDataURL не работает на Android> 4 устройства (но на Android 2)

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что после манипуляции изображения не отображаются на Android> 4 устройствах (Android 4, Android 5, Android 6 и т. Д.). Видно только изображение «не найденное изображение». Но все работает как ожидается на устройствах Android 2.x.

Есть ли существенные изменения между этими версиями?

Обработка осуществляется с помощью this plugin.

Мой код выглядит следующим образом (index.html)

<img src="{{!!image.img11 ? image.img11.src : 'img/layout/placeholder.png'}}" ng-cloak> 

App.js

 navigator.camera.getPicture(onSuccess, onFail, 
     { 
     quality: 30, 
     destinationType: Camera.DestinationType.FILE_URI, 
     sourceType: Camera.PictureSourceType.PHOTOLIBRARY, 
     targetWidth: imagePickerWidth, 
     targetHeight: imagePickerHeight, 
     encodingType: Camera.EncodingType.PNG, 
     allowEdit: false 
     }); 

     function onSuccess(imageURI) { 
     self.crop(resolve, reject, scope, imageURI, type, width, height, tabs); 

     /* JR-CROP MANIPULATION */ 

     scope.image.img11 = new Image(); 
     scope.image.img11.src = canvas.toDataURL("image/png"); 
     } 

ответ

0

Хорошо, кажется, что на Android больше, чем 5 (5,6 , 7) существует потребность в security-policy в index.htmlheader.

Просто добавьте следующее:

<head> 
<meta http-equiv="Content-Security-Policy" content="img-src 'self' data:;"> 
... 
</head> 

base64 Это позволяет закодированные изображения, которые будут отображаться.

 Смежные вопросы

  • Нет связанных вопросов^_^