Віджет для Android на JavaScript за 15 хвилин на прикладі Хабра-Карми

javascript

Оскільки ми озброєні регулярними висловлюваннями, витягти потрібні дані праці не складе. Таким чином, залишилося зрозуміти, як AnyBalance нам може допомогти.

AnyBalance надає API, в якому передбачено взаємодію плагіна з програмою. AnyBalance говорить плагіну - отримай дані, викликаючи його функцію main(), і передаючи йому налаштування користувача, а він запитує сторінки з інтернету (підтримуються методи GET і POST), витягує з них дані та повертає їх програмі. Для отримання хабракарми нам знадобиться GET запит Хабрацентру ім. заданого користувача (AnyBalance.requestGet) та передача вилучених значень програмі (AnyBalance.setResult).

Отже, код для вилучення карми та інших параметрів виглядатиме так:

Все досить прямолінійно. Щоб не перевантажувати читача зайвими технічними деталями, не наводитиму вихідник функції getParam, але її завжди можна подивитися в репозиторії.

Отже, сам код простий та короткий. Залишилося зробити кілька декоративних речей. А саме

  • маніфест, в якому будуть прописані назви та типи даних, що витягуються провайдером, назва провайдера, версія та інша метаінформація.
  • налаштування, які потрібно зробити для коректної роботи провайдера. Нам треба задати ім'я користувача.
  • значок для краси.

Маніфест є xml файл. Для провайдера, що описується, він буде виглядати так:

І, нарешті, іконка :) Ну як іконка можна взяти прямо лого хабра (якщо, звичайно, власники ресурсу не проти).

Написання провайдера, налагодження та вирізання іконки у мене зайняло рівно 15 хвилин (засікав). Звичайно, я скопіював вже існуючий провайдер і просто виправив деякі місця, але жце може зробити кожен :) Так що час вважаю справедливим.

Наприкінці статті закликаю читачів стати письменниками :) І розширити базу провайдерів, якщо ваш інтернет-провайдер, стільниковий оператор, погодний сайт, банк-клієнт ще не присутній у загальному списку.

А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль» запровадити «Хабр»