【发布时间】:2015-06-11 14:59:56
【问题描述】:
我刚刚将我的 PhoneGap 应用程序移植到 iOS 平台,我正在测试的 iPad(以及 xCode 提供的模拟器)似乎不想与 WebSQL 正常工作......
我想,我已经追查到了问题的根源。本质上,当我尝试打开/创建数据库时,应用程序只是挂起并且不会继续超过这一点......
这是我的代码片段...
var SQLAPI = function()
{
self.Init = function()
{
// DB Name, Verion Number, Text Description, Estimated Size of DB
var size = 1000 * 1024 * 1024;
if(IsMobile())
{
document.addEventListener("deviceready", function()
{
alert("Started Device Ready");
self.db = window.openDatabase("MyDB", "1.0", "My Database", size);
alert("Started Made DB");
alert("Started DB");
}, false);
}
else
{
self.db = window.openDatabase("MyDB", "1.0", "My Database", size);
alert("started DB 2")
}
};
};
问题出在以下代码...
alert("Started Device Ready");
self.db = window.openDatabase("MyDB", "1.0", "My Database", size);
alert("Started Made DB");
alert("Started DB");
第一个提示“已启动设备就绪”的警报被触发,因此会出现一个提示框,显示该文本。
然后它尝试运行 window.openDatabase 并且此时发生了一些事情,因为它永远不会执行下一组警报......
该应用可在浏览器、Android 设备等设备上运行...仅在 iOS 上会出现此问题。
【问题讨论】:
-
Web SQL 是一个废弃的标准,对它的支持可能已被删除。如果执行在该行停止,则应该有错误。将其包装在
try..catch中并检查引发的错误。 -
@JonathanLonowski 是的,但 iOS 是少数支持/支持它的少数之一。
标签: javascript jquery ios cordova