Локальная база данных HTML 5, используемая в Wigdets Mac Dashboard?
Я пытаюсь использовать функцию локальной базы данных HTML 5 на виджете Mac Dashboard. Я программирую в Dashcode следующий JavaScript:
if (window.openDatabase)
{
database = openDatabase("MyDB", "1.0", "Sample DB", 1000);
if (database)
{
...database code here...
}
}
К сожалению, переменная базы данных остается всегда нулевой после вызова метода openDatabase. Я начинаю думать, что локальные базы данных не поддерживаются в виджетах...
Есть идеи?
/ П
1 ответ
Нет, вы не сможете сделать выше. И даже если бы вы могли тогда, вы не смогли бы распространять виджет без распространения базы данных, предполагая, что это 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, позволит вам прочитать любой объем данных, а настройки позволят вам сохранить данные для последующего повторного использования, которые выживут после выхода из системы и завершения работы.
На сайте Apple есть много информации о виджетах и учебных пособиях, которые стоит изучить.
Надеюсь это поможет.