在移动应用中保存表单数据

时间:2016-11-20 09:15:06

标签: javascript android cordova backbone.js

我通过骨干js创建一个app,当提交时,表单数据存储在txt文件中。它在Windows中正常工作。 这是我的代码:

var pom = document.createElement('a');
pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(mytext));
pom.setAttribute('download', filename);
pom.style.display = 'none';
document.body.appendChild(pom);
pom.click();
document.body.removeChild(pom);

然后我创建了一个由Cordova创建的APK。当我在手机上安装APK并提交表单时,txt文件不会保存在我的手机中。 问题是什么 ? 有什么其他方法可以在我的移动应用程序中保存表单数据吗?

1 个答案:

答案 0 :(得分:0)

您需要使用File插件将文档保存到您的设备。

https://github.com/apache/cordova-plugin-file

请注意操作系统与存储文件的位置之间的差异。

下面的一些示例代码:

function writeToFile(fileName, data) {
window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function (directoryEntry) {
    directoryEntry.getFile(fileName, { create: true }, function (fileEntry) {
        fileEntry.createWriter(function (fileWriter) {
            fileWriter.onwriteend = function (e) {
                // for real-world usage, you might consider passing a success callback
                console.log('Write of file "' + fileName + '" completed.');
            };
            fileWriter.onerror = function (e) {
                // you could hook this up with our global error handler, or pass in an error callback
                console.log('Write failed: ' + e.toString());
            };
            var blob = new Blob([data], { type: 'text/plain' });
            fileWriter.write(blob);
        }, errorHandler.bind(null, fileName));
    }, errorHandler.bind(null, fileName));
}, errorHandler.bind(null, fileName));
}

这会创建一个文件,然后将名为data的变量写入文件。并给它一个我想给它的文件名。