是否可以将 iPhone 应用程序中的 UITextView 与 Pebble 上的文本层同步?
我只想在 Pebble 手表上显示一个字符串。
是否可以将 iPhone 应用程序中的 UITextView 与 Pebble 上的文本层同步?
我只想在 Pebble 手表上显示一个字符串。
这可以使用AppSync
API来完成,该 API建立在AppMessage
专门用于提供适合 UI 同步的系统之上。以下示例取自本官方指南中的 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 方面我无法为您提供太多帮助,但我上面链接的文章建议阅读 SDK 附带的 iOS WeatherDemo 应用程序以获取完整示例。