Синхронизировать текстовое представление с Pebble
Можно ли синхронизировать UITextView в приложении iPhone с текстовым слоем на моем Pebble?
Я просто хочу показать String на часах Pebble.
1 ответ
Это можно сделать с помощью AppSync
API, который построен поверх AppMessage
специально для обеспечения системы, подходящей для синхронизации пользовательского интерфейса. Следующий пример взят из раздела AppSync в этом официальном руководстве и показывает сторону watchapp:
Для синхронизации полей наблюдения ваше приложение должно объявлять размеры входного и выходного буфера в байтах.
const int inbound_size = 64; const int outbound_size = 64; app_message_open(inbound_size, outbound_size);
Подготовьте начальные значения ваших данных.
Tuplet initial_values[] = { TupletInteger(WEATHER_ICON_KEY, (uint8_t) 1), TupletCString(WEATHER_TEMPERATURE_KEY, "42°C"), };
Зарезервируйте глобальную память для хранения структуры AppSync и вашего словаря.
#include <...> AppSync sync; uint8_t sync_buffer[32];
Инициализируйте синхронизацию.
app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL);
Обработайте первое и последующее обновление.
void sync_tuple_changed_callback(const uint32_t key, const Tuple* new_tuple, const Tuple* old_tuple, void* context) { // Update your layers // Don't forget to call layer_mark_dirty() }
Наконец, вы можете обновить значение на стороне часов. Обратный вызов вызывается, когда приложение было подтверждено.
Tuplet new_tuples[] = { TupletInteger(WEATHER_ICON_KEY, (uint8_t) 3), TupletCString(WEATHER_TEMPERATURE_KEY, "73°C"), }; app_sync_set(&sync, new_tuples, 2);
Я не разработчик для iOS, поэтому я не могу вам чем-то помочь с Objective C, но в статье, которую я связал выше, предлагается прочитать приложение iOS WeatherDemo, которое поставляется с SDK для полного примера.