base64图像源无法在Cordova IOS上运行

时间:2017-03-02 10:43:42

标签: javascript html cordova base64 cordova-ios

在我的基于Cordova的IOS应用程序中,我需要从base64源显示一个图像,但它不会呈现任何内容。

 <img id="cardImg"  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>

上述简单的<img>在浏览器上工作正常但在我的cordova应用程序中没有。

这是我的<meta> tag列表

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta http-equiv="Content-Security-Policy" content="img-src 'self' data:">
    <meta content="width=device-width,initial-scale=1,maximum-scale=5,user-scalable=yes" name="viewport">
    <meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
  

Cordova版本:6.5和IOS版本:10.2.1

2 个答案:

答案 0 :(得分:1)

您需要将图像源指令更改为:

img-src 'self' data:;

附加在相同的元标记中

<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file:; style-src 'self' 'unsafe-inline'; ***img-src 'self' data:;*** script-src 'self' 'unsafe-inline' 'unsafe-eval'">

答案 1 :(得分:0)

在iOS中只有一种显示图像的方法是使用base64格式。你可以使用cordova-camera-plugin来生成base64图像并加上img标签。我设置了标志来获取jpeg中的数据,base64在相机中插件。

img id =“cardImg”

var imgdata = data:image / jpeg; base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4 // 8 / w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg ==

<强> cardImg.src = imgdata;