4

我正在创建一个 phonegap 应用程序,需要在首次加载时创建一个新的 .txt 文件。在此之后,我需要检查文件是否存在,如果是这种情况,则忽略创建,以下是我所追求的一般流程:

1 - onDeviceReady - 加载 phoengap 应用程序 2 - 检查 readme.txt 是否存在(如果是则加载主页) 3 - 创建文件 readme.txt 并添加到 www 文件夹 4 - 继续加载主页

编辑 - 而不是下面提到的有效答案,我决定使用 HTML5s 本地存储,因为这只是 1 行代码。

localStorage.setItem("name", "Email Supplied!");

并且可以使用这个简单的 if 语句进行检查

 if (localStorage.getItem("name") == "Email Supplied!")
        {
            // What you want to happen here
        }
4

2 回答 2

1

您可以在此处查看完整示例:

http://docs.phonegap.com/en/1.4.1/phonegap_file_file.md.html#FileWriter

如果文件不存在,则此行创建文件:

fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);

支持的平台

Android BlackBerry WebWorks(OS 5.0 及更高版本) iOS Windows Phone 7(Mango)

我不知道还有其他人,但在 iOS 中,该文档是在 /var/mobile/Application/YOU_APP/Documents 中创建的

[代码]

        <script type="text/javascript" charset="utf-8">

            // Wait for PhoneGap to load
            //
            document.addEventListener("deviceready", onDeviceReady, false);

            // PhoneGap is ready
            //
            function onDeviceReady() {
                window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
            }

            function gotFS(fileSystem) {
                fileSystem.root.getFile("readme.txt", {create: true}, gotFileEntry, fail);
            }

            function gotFileEntry(fileEntry) {
                fileEntry.createWriter(gotFileWriter, fail);
            }

            function gotFileWriter(writer) {
                writer.onwrite = function(evt) {
                    console.log("write success");
                };

                writer.write("some sample text");
                writer.abort();
                // contents of file now 'some different text'
            }

            function fail(error) {
                console.log("error : "+error.code);
            }

        </script>

希望能帮助到你

于 2012-02-27T16:59:44.183 回答
0

根据您正在开发的设备,您可以查看使用它们的本机文件创建 API。例如,iOS 使用 plist。Android 确实使用 .txt 文件,请查看此链接以获取更多信息。

于 2012-02-27T16:54:40.300 回答