我正在使用Intel XDK开发Android平台的JavaScript应用程序以构建APK文件。我正在使用适用于Android构建的Crosswalk,并选中了基于W3C文件API的读取、写入和导航文件系统层次结构的API选项。我可以轻松地打开文件,但无法将它们保存到设备中。
为了保存,我使用了下面的代码(该代码在桌面Chrome浏览器中运行良好):
为了保存,我使用了下面的代码(该代码在桌面Chrome浏览器中运行良好):
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
</head>
<body>
<img id="img"/>
<script>
saveImg = function (img, fileName) {
var a = document.createElement('a');
a.setAttribute('href', img.src);
a.setAttribute("download", fileName);
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
$(document).ready(function () {
var img = document.getElementById('img');
img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAASUlEQVRo3u3PAQ0AIAwDsIGC+TcLLkhOWgddSU6G a5udT4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi8cQEjUgGTmE6z3QAAAABJRU5ErkJggg==";
img.onload = onload;
function onload(){
saveImg(img, 'savedImg');
};
});
</script>
</body>
</html>
我的安卓设备显示:文件下载已完成,并且在下载文件夹中出现了一个文件:png;base64,iVBORw0KGgoAAAA...6z3QAAAABJRU5ErkJggg==.bin
。文件大小为0KB,并且我注意到文件名正好是我尝试保存的图片的base64解释。
如何解决这个问题并成功保存文件?