Skip to content
dukei edited this page Aug 5, 2015 · 2 revisions

Введение

Плагин для AnyBalance (AnyBalance провайдер) представляет собой zip файл, содержащий набор обязательных и необязательных файлов. Структура файлов одноуровневая, то есть подкаталоги в zip файле провайдера не допускаются.

Структура провайдера

Структура провайдера следующая:

anybalance-manfest.xml
icon.png
main.js
preferences.xml

anybalance-manfest.xml - манифест, определяет параметры провайдера, его название и описание, версию, счетчики, которые он предоставляет, их тип, в нем также перечислены все файлы, которые провайдер использует, и другое. Этот файл должен называться только так и не иначе, остальные файлы могут называться как угодно, главное, чтобы они были декларированы в манифесте.

icon.png - файл иконки провайдера, лучше делать разрешением повыше, чтобы хорошо смотрелось на высоких разрешениях. Этот файл декларируется в манифесте под категорией icon. Может быть только одна иконка этой категории.

main.js - провайдер должен иметь как минимум один JavaScript файл с определенной в нем функцией function main(){ ... }. Называться сам файл может как угодно, можно также подключить несколько js файлов, но все они должны быть декларированы в манифесте под категорией js.

preferences.xml - описание пользовательских настроек провайдера, которые нужны ему для работы. Настройки описываются аналогично настройкам в Android, но с упрощениями. Если хочется попроще познакомиться с оригиналом, то есть неплохая статья на эту тему. Этот файл должен быть декларирован в манифесте под категорией preferences. Может быть только один файл настроек.

Чтобы узнать подробности о формате каждого файла, перейдите по соответствующим ссылкам.

Жизненный цикл провайдера

Когда провайдер инсталлируется в AnyBalance, содержимое архива распаковывается во внутреннюю файловую систему AnyBalance и сам исходный архив больше не используется.

Инсталлированный провайдер доступен для создания аккаунтов на его базе. Каждый провайдер в манифесте декларирует счетчики (например, баланс на телефоне), значения которых он предоставляет. Чтобы их получить, могут понадобиться некоторые настройки, например, логин и пароль к сайту оператора. При создании аккаунта пользователь заполняет настройки провайдера, включая те, которые описаны в файле preferences провайдера (при его наличии). Таким образом, в каждом аккаунте собраны все настройки провайдера, которые необходимы для получения значений счетчиков.

Каждый аккаунт может быть настроен на периодическое обновление. При обновлении AnyBalance запускает JavaScript провайдера с настройками из аккаунта. И запускает функцию main(). В этой функции провайдер должен получить значения счетчиков, используя AnyBalance API, и вернуть их значения с помощью функции AnyBalance.setResult.

При настройке аккаунта пользователь может захотеть получать не все счетчики, а только часть. Для экономии ресурсов провайдер должен учесть это с помощью функции AnyBalance.isAvailable и не извлекать счетчик, для которого эта функция возвращает false.

После возврата счетчиков их обрабатывает уже AnyBalance, ведя статистику по их изменению и показывая её пользователю.

Clone this wiki locally