我是 phonegap 的新手,我需要知道将文件放在本地文件夹中的什么位置以及如何访问它们。我尝试使用 eclipse 等在我的计算机上构建我的应用程序,但是要安装的东西太多,用户变量,命令行......我试过了但它不起作用而且我不知道问题出在哪里,然后我尝试从 build.phonegap.com 构建我的应用程序它工作得很好。我遇到的问题是我需要读取音频文件,我尝试了 Audio
对象和 Media
对象,但它们不起作用。
我寻找解决方案,发现您必须将本地文件放在 assets/
或 android_assets/
中,并且您需要访问它们,我没有知道怎么做
/assets/file.wav
file:///android_assets/file.wav
所以我开始添加文件夹,例如 assets/
、android_assets/
、audios/
、whatever/
但什么也没有有效。
你能告诉我把我的文件放在哪里以及如何访问它们吗? 没有命令行,没有 eclipse... 只是在从 build.phonegap.com 构建应用程序之前手动操作
最佳答案
这是一个有用的链接,可能有帮助:link
你安装文件插件了吗?因为这是必要的。如果没有,首先你需要安装它,在项目文件夹的命令行中输入这个命令(并不难):
cordova插件添加org.apache.cordova.file
根据文件插件文档,存放文件最好的地方是以下路径:
file:///data/data/{app-id}/files/files/{你的文件夹}/{你的文件}
例如:file:///data/data/com.phonegap.myapp/files/files/audio/file.wav
这是持久的、可读/可写的,操作系统不会清除它并且是私有(private)的。 “使用内部存储器在应用程序沙箱中进行持久和私有(private)数据存储”
在您的程序中,您可以这样引用它:cordova.file.dataDirectory
例如,这是我的应用程序中的一段代码,它从 URL 下载图像并将其放入图像标记中的 HTML:
window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {
var imageURL = "http://example.com/image.jpeg";
var ext = imageURL.substr(imageURL.lastIndexOf('.') + 1); //extension of the image
var relativeFilePath = "images/myimage" + "." + ext;
var ft = new FileTransfer();
ft.download(imageURL, fileSystem.root.toURL() + relativeFilePath, function(entry) {
var myImage= "<img src=" + fileSystem.root.toURL() + relativeFilePath + "' id=" + "imageID" + ">";
alert(fileSystem.root.toURL() + relativeFilePath); //kép
$('#imgdiv').html(myImage);
}, function(err) { alert("Download failure: " + JSON.stringify(err)); });
}, function(err) { alert("requestFileSystem failure: " + JSON.stringify(err)); });
在此代码中,fileSystem.root.toURL() 指的是 file:///data/data/com.phonegap.myapp/files/files/
而relativeFilePath是我创建的,指的是images/myimage.jpeg
(下载你需要文件传输插件,你可以安装
cordova 插件添加 org.apache.cordova.file-transfer 命令)。
希望对您有所帮助。
关于android - 使用在线构建应用程序的本地文件 phonegap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25430157/