我正在尝试学习Cordova,使用visual studio作为我的想法。我已经按照网上的一些说明建立了一个音乐播放器,但缺少一个插件......“存储”。
我尝试运行它但是在尝试使用directoryReader时我得到'错误5'。
我认为这是由于权限问题,我再次假设它会被存储插件排序。
这里有几个问题......
我的上述假设是否正确? 我在哪里可以找到存储插件? 我如何包含插件?
提前感谢任何建议。
(我知道我应该发布代码,但我现在不回家了,这让我很生气!)
以下是我正在使用的代码示例:
document.addEventListener( 'deviceready', onDeviceReady.bind( this ), false );
function onDeviceReady() {
// Handle the Cordova pause and resume events
document.addEventListener( 'pause', onPause.bind( this ), false );
document.addEventListener( 'resume', onResume.bind( this ), false );
$('#readMusic').click(function () { readMusic(); });
};
function readMusic() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
}
function onFileSystemSuccess(fileSystem) {
var directoryReader = fileSystem.root.createReader();
directoryReader.readEntries(readerSuccess, fail);
}
function readerSuccess(entries) {
var i;
for (i = 0; i < entries.length; i++) {
if (entries[i].name.indexOf('.mp3') > -1) {
alert(entries[i].name);
}
}
}
答案 0 :(得分:2)
在文件插件的3.0版本中,它将LocalFileSystem.PERSISTENT
路径更改为应用程序拥有的路径,因此它将在应用卸载时删除,并且其他应用无法访问(如建议的那样)通过Android存储的最佳实践)
如果您想继续使用旧路径,则必须在config.xml
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
答案 1 :(得分:0)
Cordova没有提供官方存储插件。您可以使用localStorage以下列方式存储值:
用于保存:localStorage.setItem(“key”,value);
用于检索:localStorage.getItem(“key”);
但是,您的应用程序似乎失败了,因为它无法从您设备的文件系统中读取信息。试试这个插件:https://github.com/apache/cordova-plugin-file
此插件实现了一个File API,允许对驻留在设备上的文件进行读/写访问。
让我知道它是否有效。