使用 Android 版 PhoneGap:无法在数据库中创建表
Posted
技术标签:
【中文标题】使用 Android 版 PhoneGap:无法在数据库中创建表【英文标题】:Using PhoneGap for Android : Not able to create table in the database 【发布时间】:2013-05-24 17:32:39 【问题描述】:BackGround :我是 PhoneGap 的新手,并尝试在 android 上使用 html5 + PhoneGap 在 SQLite 中创建一个简单的表。
这是我的 HTML 代码。 (使用PhoneGap网站的参考代码)
<html>
<head>
<title>Storage Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
function onDeviceReady()
navigator.notification.alert(
'Welcome to SQLLiteDemo', // message
'', // callback
'Hey -- Welcome123' // title
);
var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
db.transaction(populateDB, errorCB, successCB);
// Populate the database
//
function populateDB(tx)
tx.executeSql('DROP TABLE IF EXISTS DEMO');
tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
// Transaction error callback
//
function errorCB(tx, err)
alert("Error processing SQL: "+err);
console.log('It is failure'+err);
// Transaction success callback
//
function successCB()
console.log('It is success');
alert("success!");
</script>
</head>
<body>
<h1>Example</h1>
<p>Database</p>
</body>
</html>
我无法看到创建表并在控制台上收到以下错误。
找不到类'android.webkit.WebResourceResponse',引用 从方法 org.apache.cordova.CordovaWebViewClient.getWhitelistResponse
TypeError:表达式“db”[null] 的结果不是对象。在 文件:///android_asset/www/index.html:25
找不到类'android.webkit.WebResourceResponse',引用 从方法 org.apache.cordova.CordovaWebViewClient.getWhitelistResponse
TypeError:表达式“db”[null] 的结果不是对象。在 文件:///android_asset/www/index.html:22
我不确定这个错误是什么意思“
找不到类'android.webkit.WebResourceResponse',引用 从方法 org.apache.cordova.CordovaWebViewClient.getWhitelistResponse
" 想要传达。我没有更改我的 config.xml 并且没有在白名单条目中添加任何条目,因为我没有与任何远程 url 交谈。不确定是否可以忽略此错误?:(
我可以看到使用 cordova 的警报框,因此没有任何与 cordova 集成相关的问题,但发生了一些奇怪的事情。请帮忙
P.S - 我正在模拟器上使用 Android 2.3。
谢谢 真棒
【问题讨论】:
这个问答你查过吗:***.com/questions/11775740/… 是的。我已经提到了。我将 cordova.jar 保存在 libs 文件夹中 【参考方案1】:我可能偏离了基础,但似乎window.openDatabase
实际上是浏览器的 HTML 5 功能。它看起来像你的代码:
var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
正在返回null
。
在您的 Android 2.3 模拟器中,启动设备的网络浏览器并转到 http://html5test.com/
,然后查看网络 SQL 数据库是否显示为受支持。
【讨论】:
【参考方案2】:我得到了解决方案,我将其发布在这里。
实际上,数据库正在创建并位于“/data/data/package_name/”文件夹下。我在“/data/data//databases”文件夹下搜索它,这就是我无法看到创建表的原因。
Creating SQLite Table from Android HTML Assets
是一个很好的链接,帮助很大。
【讨论】:
以上是关于使用 Android 版 PhoneGap:无法在数据库中创建表的主要内容,如果未能解决你的问题,请参考以下文章
Phonegap 状态栏样式默认或回退 android 低于 6
使用 Phonegap 的 Android 应用程序的 iframe 无法正常工作
Phonegap 构建应用程序在 android 上无法正常工作
Phonegap/Cordova 无法下载到 Android 中的子文件夹