0

我正在尝试在 Mac Dashboard 小部件上使用 HTML 5 的本地数据库功能。我正在使用 Dashcode 编写以下 javascript:

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

不幸的是,在调用 openDatabase-method 之后,数据库变量始终为空。我开始认为小部件不支持本地数据库......

有任何想法吗?

/pom

4

1 回答 1

0

不,您将无法执行上述操作。即使你可以,你也无法在不分发数据库的情况下分发小部件,假设它是 MySQL 或 SGLite。(不确定 HTML 5 的本地 Db 是什么意思。

这里有很多方法可以解决这个问题:-

您可以添加可以是 JSON 文件、XML 文件或 RSS 提要的数据源。因此,例如,要使用 JSON 执行此操作,您将在 PHP 或访问数据库的服务器上编写一个页面,以便在调用 URL 时结果是一个 JSON 字符串。获取 JSON 字符串并对其进行解析并在 Widget 中使用它。这将让您获取数据但不能保存它。

另一种方法是使用用户偏好。这允许您在单个小部件中保存和检索数据。

所以

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 将允许您读取任意数量的数据,并且首选项将允许您保存数据以供以后重用,这些数据将在注销和关闭后继续使用。

Apple 网站上有很多关于 Widget 和教程的信息,值得一读。

希望这可以帮助。

于 2010-01-28T14:11:47.913 回答