2010-01-24 15 views
0

我試圖在Mac儀表板小部件上使用HTML 5的本地數據庫功能。 我在Dashcode中以下程序的javascript:本地HTML 5數據庫可用於Mac儀表板wigdets?

if (window.openDatabase) 
{ 
    database = openDatabase("MyDB", "1.0", "Sample DB", 1000); 
    if (database) 
    { 
     ...database code here... 
    } 
} 

不幸的是,數據庫變量保持調用的openDatabase法之後總是空。我開始認爲本地數據庫不支持在小工具...

任何想法?

/pom

回答

0

不,你不能做到以上。即使你可以,那麼假如它是MySQL或SGLite,你也不能在沒有分發數據庫的情況下分發小部件。 (不知道你的HTML 5的本地數據庫的意思

這裏有多種方式這一輪: -

您可以添加它可以是一個JSON文件和數據源,或XML文件或RSS所以要用JSON來做到這一點,例如你可以在PHP中的服務器上編寫一個頁面或者訪問數據庫的東西,這樣當URL被調用時,結果是一個JSON字符串,取出JSON字符串並解析它並使用它這可以讓你獲得數據但不會保存它

另一種方法是使用用戶的偏好,這允許你保存和檢索單個小部件中的數據

所以

var preferenceKey = "key";  // replace with the key for a preference 
var preferenceValue = "value"; // replace with a preference to save 
// Preference code 
widget.setPreferenceForKey(preferenceValue, preferenceKey); 

然後,您可以用

var preferenceForKey = "key"; // replace with the key for a preference 
// Preference code 
preferenceForKey = widget.preferenceForKey(preferenceForKey); 

外部來電找回它,你也可以使用REST將讓你閱讀任何數量的數據和喜好就會讓你保存數據之後重新使用可以在註銷和關閉後繼續使用。

蘋果網站有很多關於小工具和教程以及thjat值得一試的信息。

希望這會有所幫助。

+0

他指的是:http://webkit.org/blog/126/webkit-does-html5-client-side-database-storage/ – Agos 2010-01-28 14:17:19