canvas.toDataURL无法在Android> 4设备上运行(但在Android 2上)

时间:2016-10-09 19:49:18

标签: android cordova canvas ionic-framework todataurl

我正在使用Cordova / Ionic构建应用程序。 用户可以操纵他的gallery-fotos,然后显示在应用程序上。

我现在面临的问题是,在操作之后,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");
      }

1 个答案:

答案 0 :(得分:0)

好的,似乎在Android大于5(5,6,7)的情况下,security-policy index.html需要header

只需添加以下内容:

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

这样可以显示base64个编码图像。