我使用煎茶觸摸2.0.1,我試圖打開使用SQLite數據庫:window.openDatabase引發TypeError:對象[對象DOMWindow]有沒有方法「的openDatabase」在Android
var db = window.openDatabase("mydatabase", "1.0", "mydatabase", 2000000);
在iPhone/IOS模擬器可以工作。在Android設備或仿真器我得到一個異常:
TypeError: Object[object DOMWindow] has no method 'openDatabase'
我使用煎茶建立本地應用(雖然我迅速失去信心...),所以我不使用PhoneGap的。
煎茶包裝創建和AndroidManifest.xml文件,但我不能看到
android.permission.WRITE_EXTERNAL_STORAGE
我不知道設置權限,如果這是問題,但!
任何幫助非常感謝,因爲這是驅使我悄悄地堅果。
編輯:這裏的JS - 這是生成的煎茶觸摸的部分應用:
Ext.application({
name: 'MyApp',
requires: [
'Ext.MessageBox'
],
views: ['Main'],
icon: {
'57': 'resources/icons/Icon.png',
'72': 'resources/icons/Icon~ipad.png',
'114': 'resources/icons/[email protected]',
'144': 'resources/icons/[email protected]'
},
isIconPrecomposed: true,
startupImage: {
'320x460': 'resources/startup/320x460.jpg',
'640x920': 'resources/startup/640x920.png',
'768x1004': 'resources/startup/768x1004.png',
'748x1024': 'resources/startup/748x1024.png',
'1536x2008': 'resources/startup/1536x2008.png',
'1496x2048': 'resources/startup/1496x2048.png'
},
launch: function() {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('MyApp.view.Main'));
//
try {
var db = window.openDatabase("mydatabase", "1.0", "mydatabase", 2000000);
if (!db) {
var m3 = new Ext.MessageBox();
m3.alert("db test!", "openDatabase failed!");
} else {
var m3 = new Ext.MessageBox();
m3.alert("db test!", "openDatabase ok!");
}
}
catch(err){
var m2 = new Ext.MessageBox();
m2.alert("db test!", "exception caught: " + err.name + ":" + err.message);
}
}
});
做這個問題的幫助? http://stackoverflow.com/questions/2474475/how-do-i-call-window-opendatabase-from-a-webview-hosted-in-an-android-applicatio/2474524#2474524 – Nerd 2012-07-23 19:04:40
我看到這個,但假定它是Java而不是Javascript(WebSettings settings = myWebView.getSettings();)。 – MattD 2012-07-23 19:32:35
@Nerd這可以解釋爲什麼他的數據庫調用會被阻塞,但不是爲什麼'openDatabase'甚至不存在。 – jbabey 2012-07-23 19:38:32