我通过骨干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文件不会保存在我的手机中。 问题是什么 ? 有什么其他方法可以在我的移动应用程序中保存表单数据吗?
答案 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的变量写入文件。并给它一个我想给它的文件名。