Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在android混合应用程序(intel XDK crosswalk build)中用javascript保存文件_Javascript_Android_Cordova_Intel Xdk_Crosswalk Runtime - Fatal编程技术网

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

无法在android混合应用程序(intel XDK crosswalk build)中用javascript保存文件,javascript,android,cordova,intel-xdk,crosswalk-runtime,Javascript,Android,Cordova,Intel Xdk,Crosswalk Runtime,我正在为android平台开发javascript应用程序,使用intel XDK构建apk文件。我正在使用android build的Crosswalk和选中的API来读取、写入和导航文件系统层次结构,基于W3C文件API选项。我可以轻松打开文件,但无法将其保存到设备 为了保存,我使用了以下代码(该代码在桌面chrome浏览器中运行良好): 我的android设备写入:完成下载文件并在下载文件夹中显示文件:png;base64,ivborw0kggoaaa…6z3qaaabjru5erkj

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

为了保存,我使用了以下代码(该代码在桌面chrome浏览器中运行良好):


我的android设备写入:完成下载文件并在下载文件夹中显示文件:
png;base64,ivborw0kggoaaa…6z3qaaabjru5erkjggg==.bin
。文件大小是0KB,而且我注意到文件名正是我试图保存的img的base64插值


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

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

如果web开发人员希望下载一个文件并将其保存到设备(本机文件系统),我认为Cordova download api现在应该是一个不错的选择。 请参阅:
它符合您的要求吗?

而且Crosswalk计划支持本机文件系统,也许它将登陆Crosswalk 6,我不确定确切日期。
支持本机文件系统后,web开发人员可以使用XmlHttpRequest API下载文件,并直接通过Crosswalk filesystem API而不是Cordova download API将其保存到设备(本机文件系统)上。

Cordova有用于上传/下载文件的API。这能满足你的需要吗@rscohn2,这个API在加载之前是否有提示,您可以在其中选择类似于中的路径?
<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>