Phonegap SQL数据库问题

时间:2013-10-29 07:54:32

标签: sql cordova

我正在努力学习如何处理手机缺口。我做了一些sql教程,由于某些原因,它们都没有为我工作。他们刚刚完成了似乎按预期创建数据库。是否有我在某处遗失的设置或许可?

以下代码的结果如下:http://madebyjohann.com/curatio/addweight.html

<!DOCTYPE html>
<html>
  <head>
          <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width;" />
    <title>Open File</title>
        <script type="text/javascript" src="xui.js"></script>
        <script type="text/javascript" src="cordova-2.0.0.js"></script>
    <script type="text/javascript" >

        var fileObject;

        document.addEventListener("deviceready", onDeviceReady, true);

        function onDeviceReady() {
                window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail); 
        }

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

        function gotFileEntry(fileEntry) {
                fileObject = fileEntry;

                x$('#saveFile_btn').on('click', function() {
                        saveFileContent();
                });
    }

        function gotFileWriter(writer) {
        var myText = document.getElementById('my_text').value;
        writer.write(myText);

                writer.onwriteend = function(evt) {
                        x$('#message').html('<p>File contents have been written.<br /><strong>File path:</strong> ' + fileObject.fullPath + '</p>');

                        var reader = new FileReader();
                        reader.onload = function(evt) {
                                x$('#contents').html('<strong>File contents:</strong> <br />' + evt.target.result);
                        };
                        reader.readAsText(fileObject);
               };

    }

        function saveFileContent() {
                fileObject.createWriter(gotFileWriter, fail);
        }

        function fail(error) {
        alert(error.code);
    }
    </script>
</head>
<body>

        <input type="text" id="my_text" />
        <input type="button" id="saveFile_btn" value="Save" />

        <div id="message"></div>
        <div id="contents"></div>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

<强> 1)

首先,您的代码不能使用SQL或任何数据库。

您正在使用的是文件系统。两件不同的事情。

<强> 2)

您无法在浏览器中执行phonegap代码。您需要创建一个应用程序。

第3)

您发布的网站上的代码与您问题中的代码相同。我只会回答你在这个问题上发布的内容。

http://docs.phonegap.com/en/3.1.0/cordova_storage_storage.md.html#Storage

请阅读上面的链接以使用localstorage API。

此外,这里有一个教程,你可以阅读,学习phonegap并开始使用它。

http://mobile.tutsplus.com/tutorials/phonegap/phonegap-from-scratch/

这只是一个复制粘贴:

<!DOCTYPE html>
<html>
  <head>
    <title>Storage Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

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

    // device APIs are available
    //
    function onDeviceReady() {
        var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
        db.transaction(populateDB, errorCB, successCB);
    }

    // Populate the database
    //
    function populateDB(tx) {
        tx.executeSql('DROP TABLE IF EXISTS DEMO');
        tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
        tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
        tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
    }

    // Transaction error callback
    //
    function errorCB(tx, err) {
        alert("Error processing SQL: "+err);
    }

    // Transaction success callback
    //
    function successCB() {
        alert("success!");
    }

    </script>
  </head>
  <body>
    <h1>Example</h1>
    <p>Database</p>
  </body>
</html>