android - 使用在线构建应用程序的本地文件 phonegap

标签 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/ 但什么也没有有效。

你能告诉我把我的文件放在哪里以及如何访问它们吗? 没有命令行,没有 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/

相关文章:

java - 无休止的recyclerview,多种 View 类型,OnscrollListener后崩溃

android - 如何以编程方式在android中的xml文件中引用<string>

页面刷新后 JQuery 验证不起作用 (Jquery Mobile)

jquery-mobile - JQuery Mobile slider 不工作

angularjs - Cordova/Phonegap Google Maps Plugin 上标记图标的本地镜像

javascript - 在 Meteor Cordova 上设置闪屏延迟

javascript - 使用 Cordova 的 Windows 8 native 插件

android - 如何在不使用应用程序的情况下共享 Android 屏幕

java - 如何在单独的类中提供所有 ContextMenu 逻辑?

javascript - 从动态页面/表中获取数据?