2013-08-30 2 views
1

Я разрабатываю мобильное приложение с использованием phonegap. Первоначально я разработал WEBSQL, но теперь планирую его переместить на INDEXDB. Проблема заключается в том, что не имеет прямой поддержки на IOS, поэтому делать много R & DI пришел узнать с помощью IndexedDB Polyfil мы можем реализовать его на IOS тожеКак реализовать IndexDB в IOS

http://blog.nparashuram.com/2012/10/indexeddb-example-on-cordova-phonegap.html http://nparashuram.com/IndexedDBShim/

Может кто-то пожалуйста, помогите мне как осуществить это, как там не хватает документации для этого, и я не могу понять, любое другое решение/API, кроме этого

Я испытал это на сафари 5.1.7

Ниже мой код и ошибки Изображение

var request1 = indexedDB.open(dbName, 5); 
request1.onsuccess = function (evt) { 
    db = request1.result; 
    var transaction = db.transaction(["AcceptedOrders"], "readwrite"); 
    var objectStore = transaction.objectStore("AcceptedOrders"); 
    for (var i in data) { 

     var request = objectStore.add(data[i]); 
     request.onsuccess = function (event) { 

      // alert("am again inserted") 
      // event.target.result == customerData[i].ssn; 
     }; 
    } 

}; 
request1.onerror = function (evt) { 
    alert("IndexedDB error: " + evt.target.errorCode); 
}; 

Error Image

ответ

0

Один слепой догадка

Может быть, ваш dbName содержит недопустимые символы для имен баз данных WebSQL. Полипол не переводит имена ваших баз данных в любом виде. Поэтому, если вы создадите базу данных под названием my-test, она попытается создать базу данных WebSQL с именем my-test. Это имя приемлемо для базы данных IndexedDB, но в WebSQL у вас возникнут проблемы из-за символа -. Таким образом, ваше имя базы данных должно соответствовать обоим, IndexedDB и соглашениям с названиями WebSQL.

... в противном случае использовать отладчик

Вы можете установить точку останова на ваш alert(...); линии и использовать отладчик, чтобы заглянуть внутрь evt объекта. Таким образом, вы можете получить больше информации о самой ошибке или дополнительной информации, чтобы поделиться с нами.

Для этого включите меню разработки в расширенных настройках Safari, нажмите F10 и перейдите к Developer > Start отладки JavaScript (что-то вроде этого, мой Safari - на другом языке). Теперь откройте вкладку «Скрипты» в окне разработчика, выберите свой скрипт и установите точку останова, щелкнув по номеру строки. Перезагрузите страницу, и она должна остановиться прямо в обратном вызове ошибки, где вы можете проверить объект evt.

Если это не поможет, вы можете получить неминифицированную версию полипол и попытаться установить некоторые точки останова вокруг своей функции open, чтобы найти происхождение этой ошибки.

+0

В стандарте WebSQL отмечается, что любая строка является допустимым именем базы данных. Реализация мудрая, хотя это чья-то догадка. – Bostwickenator