Галька связи

Я экспериментировал с галькой уже день или два, и я немного остановился. То есть я не могу понять, как связаны определенные вещи. Я пытаюсь получить данные из приложения на Android для отправки в Pebble, а затем сделать так, чтобы Pebble сделал что-то продуктивное с этими данными.

Я понял, что вы используете PebbleKit API в приложении для Android, чтобы общаться с камешком, используя такие вещи, как sendDataToPebble(), Но после этого я не совсем уверен, что делать.

Используя cloudpebble.net, я создал приложение на C, используя pebble SDK для подтверждения данных (используя обработчики, как предложено на их веб-сайте). Однако недавно я обнаружил, что во всем этом миксе также может присутствовать javascript, и я просто не знаю, как взаимодействовать с js.

Можно ли иметь все подтверждения / отсутствия данных, и последующую обработку / отображение данных полностью выполнить с помощью javascript, полностью избегая C, или мне нужно получить данные в c, а затем отправить их как-нибудь для javascript? использовать (что я в настоящее время не знаю, как это сделать).

Я считаю, что есть какое-то событие, которое вызвано (appmessage, Я думаю), когда данные получены приложением JS, однако, я думаю, что это только из приложения C?

Таким образом, в основном мое замешательство заключается в том, как JS попадает во весь микс. Если бы кто-то мог это прояснить для меня, я был бы искренне признателен.

РЕДАКТИРОВАТЬ: я должен добавить, что я пытаюсь создать приложение, используя pebble.js в cloudpebble.net.

Спасибо!

1 ответ

Решение

Примечание. Некоторые из приведенных ниже ссылок ведут на документацию по Pebble API, которая на момент написания этой статьи была доступна только в том случае, если вы вошли на сайт разработчика со своей учетной записью Pebble.

Начало работы с Pebble может быть немного ошеломляющим. Есть много движущихся частей, некоторые из которых вам понадобятся, а некоторые - нет. Вот краткий обзор основных компонентов:

  1. Приложение, написанное на C. Вам обязательно нужно написать один из них. (Ну, почти наверняка. См. Примечание о SimplyJS ниже.)

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

    Часы сами по себе не могут сделать много интересного. Например, он не может делать какие-либо сетевые запросы, поэтому нет связи с Интернетом. Он не может делать геолокацию сам. Вы можете создать полностью автономный циферблат, таймер или простую игру.

  2. Если ваше приложение не работает полностью на часах, вам также понадобится одно из следующих:

    • Android-приложение, написанное на Java с использованием PebbleKit для Android.
    • Приложение для iOS, написанное на Objective C и использующее PebbleKit для iOS.

      У меня нет опыта работы с PebbleKit для Android или PebbleKit для iOS, но у них обоих есть официальная документация по API:

      Ни один из них не может быть использован с CloudPebble.net.

    • Приложение JavaScript, написанное с использованием PebbleKitJS, которое работает как на Android, так и на iOS.

      Поскольку эта опция позволяет разработчикам ориентироваться на обе мобильные платформы, это мой любимый вариант. Я чувствую, что многие другие разработчики согласны. Если вам не нужен доступ за пределы того, что предлагает PebbleKitJS, я бы порекомендовал использовать его.

      Код JavaScript выполняется из официального приложения Pebble на вашем телефоне. По сути, приложение Pebble имеет изолированную среду JavaScript для каждого приложения для часов. Если вы пойдете по этому пути, вы не создадите сопутствующее приложение для Android или iOS. Официальное приложение Pebble фактически становится вашим сопутствующим приложением.

      • Этот API также можно использовать на CloudPebble.net.
      • К сожалению, в настоящее время Pebble не предоставляет документы API для PebbleKitJS. У вас есть только руководство по работе с Pebble JavaScript Framework и примеры приложений.

      (Обратите внимание, что на iOS код JavaScript на самом деле должен быть включен в официальное приложение Pebble. Это создает примерно 5-6-дневный период после выпуска вашего приложения, где пользователи iOS получат сообщение о том, что оно "скоро будет доступно", в то время как пользователи Android будут в состоянии использовать это немедленно.)

  3. Наконец, если вы действительно не хотите использовать C, вы можете написать приложение Pebble исключительно на JavaScript, используя Simply.js (неподдерживаемый сторонний инструмент). Я никогда этим не пользовался, в первую очередь потому, что кажется, что на ваших часах одновременно может работать только одно приложение Simply.js:

    Как я могу использовать это?

    Вам понадобится Pebble с OS 2.0.

    • Напишите скрипт Simply.js и разместите его в Интернете.
    • Скачайте Simply.js v0.3.2 на свой Pebble.
    • Перейдите на страницу "Мой камешек" в новом официальном приложении для телефона Pebble.
    • Коснитесь механизма настроек Simply.js.
    • Поместите URL в ваш скрипт и нажмите "Сохранить". † Ваш скрипт должен немедленно запуститься.
    • Играй со своим камешком!

    † Если вы размещаете свой скрипт на Github, используйте необработанный URL-адрес вашего скрипта.

Чтобы сделать вещи еще более запутанными, с любым из трех телефонных API вы можете использовать один из двух коммуникационных API:

  1. AppMessage это базовый коммуникационный API, который разработчики могут использовать:

    AppMessage - это двунаправленная подсистема обмена сообщениями, которая обеспечивает связь между телефонными приложениями и приложениями Pebble watchapps. Это достигается за счет того, что телефон и приложение для часов обмениваются произвольными наборами пар ключ / значение. Пары ключ / значение хранятся в форме словаря, макет которого оставлен на усмотрение разработчика приложения.

    Это работает достаточно хорошо, но иногда бывает сложно начать работать. Если вы работаете с PebbleKitJS, используйте console.log свободно, так как нет отладчика.

  2. AppSync библиотека более высокого уровня, претендующая на синхронизацию пользовательского интерфейса:

    AppSync - это удобный уровень, который находится поверх AppMessage и служит в качестве слоя синхронизации пользовательского интерфейса для AppMessage. При этом AppSync упрощает передачу информации, отображаемой в пользовательском интерфейсе watchapp, с помощью сообщений, отправляемых приложением телефона.

    AppSync поддерживает и обновляет словарь и предоставляет вашему приложению процедуру обратного вызова (AppSyncTupleChangedCallback), которая вызывается при каждом изменении словаря и обновлении пользовательского интерфейса приложения. Обратите внимание, что пользовательский интерфейс приложения не обновляется автоматически. Чтобы обновить пользовательский интерфейс, вам нужно реализовать обратный вызов.

    Я еще не использовал его, но собираюсь попробовать перенести приложение из AppMessage в AppSync, Это выглядит полезным, даже если вы не выполняете синхронизацию пользовательского интерфейса.

Помимо официальных руководств и документации по API, Pebble предоставляет ряд полезных примеров приложений в SDK. Поскольку вас, похоже, интересует опция JavaScript, наиболее интересными, вероятно, являются

  • приложение котировки акций, расположенное по адресу Examples/pebblekit-js/quotes/, а также
  • приложение погоды, расположенное по адресу Examples/pebblekit-js/weather/,

Проверьте каждое приложение src/<appname>.c а также src/js/pebble-js-app.js файлы.

Другие вопросы по тегам