Быстро делаем виджет для mac

На самом деле создать виджет для маковского дашборда дело 5 минут. Не знаю зачем все так запутали в мануалах и статьях.

myweather

Всего навсего нужно создать директорию, в которой сделать html страничку и манифест файл – Info.plist и файл Default.png – картинка, которая будте показываться, пока виджет не инициализирован. После чего переименовать эту директорию в *.wdgt. Все. Советы по обходу граблей под катом.

Подсказки:

  • файл Default.png должжен быть обязательно – без него виджет не будет валидным
  • внимательно просмотрите описание полей и возможных значений для info.plist
  • если вы хотите работать с сетью, обязательно должен стоять специальный ключ разрешающий работу с сетью:

    [xml]
    <key>AllowNetworkAccess</key>
    <true/>
    [/xml]

  • очень часто возникают странные проблемы с кешированием: и даже установив новую версию виджета вы видите, что ничего не обновилось. Я решал это путем переименования файлов/названия самого виджета/версии виджета
  • иконку для виджета можно задать поместив в папку файл icon.png
  • с дебагом все совсем печально: никакой консоли нет. в сети советуют тупо создать текстовое поле в виджете и туда логировать в случае необходимости информацию, типа:

    [javascript]
    document.getElementById(‘debug’).textContent = ‘something that you want to log’;
    [/javascript]

Пример

Как примера я взял разработку погодного виджета, пожалуй одного из самых популярных. Данные беру с openweathermap.

Для удобства создал grunt конфигурацию, которая сама копирует файлы и переименовывает папку в файл с расширением *.wdgt.

Код примера тут.

В моем виджете всегда светит солнышко. It’s not a bug, it’s feature.