微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在android混合应用中的javascript中保存文件(intel XDK crosswalk build)

我正在使用intel XDK开发适用于android平台的javascript应用程序以构建apk文件.我正在使用Crosswalk进行android构建,并基于W3C File API选项选中了一个用于读取,写入和导航文件系统层次结构的API.我可以轻松打开文件,但无法将其保存到设备.

为了节省,我确实使用了以下代码(该代码在桌面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 = onl oad;
        function onl oad(){
            saveImg(img, 'savedImg');
        };
    });
</script>
</body>
</html>

我的Android设备写入:完成下载文件,并在下载文件夹中显示文件:png; base64,iVBORw0KGgoAAAA … 6z3QAAAABJRU5ErkJggg ==.bin.文件大小为0KB,我也注意到文件名称恰好是我尝试保存的img的base64插入.

如何解决这个问题并能够保存文件

解决方法:

Crosswalk是一个Web运行时,它不像其他浏览器一样提供下载管理器UI,它不应该是运行时的目标.当用户单击下载的链接时,Crosswalk会生成Android选定的下载管理器,它将启动下载管理器或认浏览器以下载资源.

如果Web开发人员想要下载文件并将其保存到设备(本机文件系统),我认为Cordova下载api应该是一个不错的选择.
请参阅:https://cordova.apache.org/docs/en/3.0.0/cordova_file_file.md.html#FileTransfer
是否符合您的要求?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐