Веб-хранилище SQL в iphone

Могу ли я использовать веб-хранилище 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 из-за это

Приложение не является родным приложением, это традиционное клиент-серверное приложение с сервером, возвращающим указанный выше HTML-фрагмент в браузер iPhone (браузер Safari).

Примечание. Приведенный выше код отлично работает в настольном браузере с возможностями Web SQL.

Спасибо, Вирен.


person Viren    schedule 01.02.2012    source источник


Ответы (1)


По-видимому, у Safari на iOS есть проблемы с обработкой БД. Это работает, если вы создадите ярлык на своем трамплине для запуска в качестве веб-приложения.

person TecHunter    schedule 15.02.2012
comment
По-видимому, все та же проблема, по крайней мере, на iOS 7.0.4. Грустный :-( - person spa; 11.09.2014