簡體   English   中英

無法在Android混合應用程序中保存javascript中的文件(英特爾XDK人行橫道構建)

[英]unable to save a file in javascript in android hybrid app (intel XDK crosswalk build)

我正在使用intel XDK為Android平台開發javascript應用程序來構建apk文件。 我正在使用Crosswalk for android build with checked An API來讀取,編寫和導航文件系統層次結構,基於W3C File 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 = onload;
        function onload(){
            saveImg(img, 'savedImg');
        };
    });
</script>
</body>
</html>

我的android設備寫: 完成下載文件並在下載文件夾中出現文件: png;base64,iVBORw0KGgoAAAA...6z3QAAAABJRU5ErkJggg==.bin 文件大小是0KB,我還注意到文件的名稱正是我試圖保存的img的base64 interpritation。

如何解決這個問題並能夠保存文件?

Crosswalk是一個Web運行時,它不像其他瀏覽器那樣提供下載管理器UI,它不應該是運行時的目標。 當用戶點擊下載的鏈接時,Crosswalk會生成Android選定的下載管理器,它將啟動下載管理器或默認瀏覽器來下載資源。

如果Web開發人員想要下載文件並將其保存到設備(本機文件系統),我認為Cordova下載api應該是一個很好的選擇。 請參閱: https: //cordova.apache.org/docs/en/3.0.0/cordova_file_file.md.html#FileTransfer它是否符合您的要求?

Crosswalk正計划支持原生文件系統,也許它將登陸Crosswalk 6,我不確定確切的日期。 在支持本機文件系統之后,Web開發人員可以使用XmlHttpRequest API下載文件並直接通過Crosswalk文件系統API而不是Cordova下載api將其保存到設備(本機文件系統)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM