2012-05-16 32 views
0

我有一个在早期版本的Android上运行的web应用程序,但在Android 4.0.3(HTC 1x) 上运行时似乎有问题。即openDatabase javascript函数是“未定义”,是否支持此api?Android 4.0.3 Web浏览器支持Web SQL数据库

+1

你的'openDatabase()'调用是什么样的?我发现的一些帖子描述了需要在ICS上添加第四个参数。 –

+0

我可以确认WebSQL适用于4.0.2 Verizon Galaxy Nexus。 –

+0

当我在下面运行Javascript时,出现异常“openDatabase没有定义”。有什么建议么? var dbVersion ='0.1'; var displayName ='动物'; var maxSize = 65533; var dataBase; alert(“calling openDatabase”); try { dataBase = openDatabase(dbName,dbVersion,displayName,maxSize); } catch(err){ alert(err.message); } –

回答

-1

是的,当然,我用它在Android 2.2,所以我认为4.0.x版也与之兼容...

您可以发布您的JavaScript代码?

var db = openDatabase(shortName, version, displayName, maxSize); 
+0

为什么在这里downvote? – ChristopheCVB

+0

Javascript is..var dbVersion ='0.1'; var displayName ='动物'; var maxSize = 65533; var dataBase; alert(“调用openDatabase”);尝试{dataBase = openDatabase(dbName,dbVersion,displayName,maxSize); } catch(err){alert(err.message); } –

+0

实际上,当我升级手机软件时,openDatabase异常更改为“SECURITY_ERR:DOM异常18”。有任何想法吗? –

3

我认为这个问题的答案是“它取决于设备”。我一直在试图解决这个问题,它可以在iOS和一些Android设备上正常工作,但不是其他的,我们已经看到了一些4.0.3,一些4.0.4和一些2.3.x的问题(到目前为止,我们尝试过的那个2.2.x设备工作得很好)。我花了数周的时间想出一个客户端解决方案,但我认为可能没有。奇怪的是,操纵数据库版本似乎改变了某些设备中的某些东西,即使你没有版本化数据库,但它不能解决问题。也不会改变maxSize。我们认为最好的策略是使用某种抽象(比如Lawnchair),或者现在使用localstorage/sessionstorage,或者在localstorage/sessionstorage中使用,或者在未来的索引数据库。