本地文件phonegap与在线建设应用程序

时间:2014-08-21 15:24:26

标签: android jquery-mobile cordova audio phonegap-build

我是phonegap的新手,我需要知道将文件放在本地文件夹中的位置以及如何访问它们。我尝试使用eclipse等在我的计算机上构建我的应用程序,但是有太多东西要安装,用户变量,命令行......我试过但它不起作用我不知道问题出在哪里,然后我尝试从build.phonegap.com构建我的应用程序,它工作得很好。我遇到的问题是我需要读取一个音频文件,我尝试了Audio对象和Media对象,但它们不起作用。

我找到了解决方案,我发现你必须将你的本地文件放在assets/android_assets/中,你需要访问它们,我不知道如何

/assets/file.wav
file:///android_assets/file.wav

所以我开始添加assets/android_assets/audios/whatever/等文件夹,但没有任何作用。

你可以告诉我把文件放在哪里以及如何访问它们。 没有命令行,没有日食 ...只需在build.phonegap.com构建应用程序之前手动

2 个答案:

答案 0 :(得分:2)

这是一个有用的链接,可能会有所帮助:link

你安装了文件插件吗?因为这是必要的。如果没有,首先你需要安装它,在项目的文件夹中输入命令行这个命令(这并不难):

cordova插件添加org.apache.cordova.file

根据文件插件文档,最好的地方是存储文件的路径如下:

file:/// data / data / {app-id} / files / files / {your folder} / {your files}

例如:file:///data/data/com.phonegap.myapp/files/files/audio/file.wav

这是持久的,可读/可写的,操作系统不会清除它和私有。 “使用内部存储器在应用程序的沙箱中存储持久和私有数据”

在你的程序中你可以这样推荐: 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 命令)。

我希望这会有所帮助。

答案 1 :(得分:-1)

@Khalid您必须手动创建项目:

project_folder
  |___index.html
  |___audio_folder
  |___any resources or folder

请查看来自Phonegap Build

的文件

编辑1:按媒体对象播放媒体文件

// Get path 'www' in Android
function getPathApp(){
  return location.href.slice(0,-10);
}
var media = new Media(getPathApp() + 'audio/file.wav');

// In IOS only need path from audio folder
var media = new Media('audio/file.wav');

media.play();