2012-02-01 38 views
1

我可以使用Web SQL存儲在iPhone的Web SQL存儲在iPhone

目前我下面的代碼導致錯誤

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
    <title>Web Storage</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    <script type="text/javascript" language="javascript" charset="utf-8"> 

    var sessionDB = {} 
    sessionDB.webdb = {}; 
    sessionDB.webdb.db = null; 

    function init() { 
    console.log("Loading"); 
    sessionDB.webdb.open(); 
    sessionDB.webdb.createTable(); 
    sessionDB.webdb.addRecord("_session_id=9943d50d1b8fdc3794137f5446e94a6e"); 
    sessionDB.webdb.getSession(); 
    } 

    sessionDB.webdb.open = function() { 
     var dbSize = 1 * 1024 * 1024; 
     sessionDB.webdb.db = openDatabase("sessionDB", "1.0", "Session Database", dbSize); 
    } 

    sessionDB.webdb.createTable = function() { 
     var db = sessionDB.webdb.db; 
     db.transaction(function(tx) { 
     // make id auto Increment 
     tx.executeSql("CREATE TABLE IF NOT EXISTS sessions(ID INTEGER PRIMARY KEY ASC, session_id TEXT, added_on DATETIME)", [],successCallbacks,errorCallbacks); 
     }); 
    } 

    sessionDB.webdb.addRecord = function(session_id) { 
     var db = sessionDB.webdb.db; 
     db.transaction(function(tx){ 
      var addedOn = new Date(); 
      tx.executeSql("INSERT INTO sessions(session_id, added_on) VALUES (?,?)", 
       [session_id,addedOn],successCallbacks,errorCallbacks); 

     }); 
     } 

    successCallbacks = function(transaction,sqlResult) { 
     console.log("SUCCESS :)"); 
    } 

    errorCallbacks = function(transaction,error) { 
     console.log(error.message + " -- " + error.code); 
     console.log("ERROR !!!"); 
    } 

    sessionDB.webdb.getSession = function() { 
     var db = sessionDB.webdb.db; 
     db.transaction(function(tx) { 
     tx.executeSql("SELECT session_id FROM sessions limit 1 ;", [], resultSets); 
     }); 
    } 

    resultSets = function (transaction,sqlResult) { 
    $("#resultSet").text(sqlResult.rows.item(0).session_id) 
    } 

    </script> 
</head> 
<body onload="init();"> 
    <h1> WEB STORAGE EXAMPE </h1> 
    <div id="resultSet"> </div> 

</body> 

錯誤消息,指出 「無權」 與錯誤代碼5

這個想法是存儲SESSION_ID在會話表,我不能接近localStorage的因爲this

的應用程序是不是原生的應用程序與服務器傳統的客戶端 - 服務器應用程序上面的HTML片段返回到iPhone的瀏覽器(Safari瀏覽器)

注:以上代碼做工精細在桌面瀏覽器網具有SQL功能

感謝 Viren

+0

看看這個:http://sixrevisions.com/web-development/html5-iphone-app/。我從未在iOS上製作過使用過的HTML5,但本教程看起來很有幫助。 – 2012-02-01 06:33:33

+0

我有同樣的問題,但我設法使它隨機工作....不知道爲什麼,但它似乎只有當你在跳板上做一個快捷方式,並從那裏運行它作爲一個Web應用程序的時候工作。試試這個,告訴我它是否改變了什麼 – TecHunter 2012-02-15 10:01:06

回答

1

顯然,iOS上的Safari有一些處理數據庫的問題。如果您在跳板上創建快捷方式以作爲WebApp運行,它將起作用。

+1

至少在iOS 7.0.4上,顯然仍然是相同的問題。悲傷:-( – spa 2014-09-11 16:03:21