使用Pebble同步文本视图

时间:2014-03-19 15:03:27

标签: ios7 uitextview pebble-watch pebble-sdk

是否可以将iPhone应用程序中的UITextView与Pebble上的文本层同步?

我只想在Pebble手表上显示一个字符串。

1 个答案:

答案 0 :(得分:1)

这可以使用AppSync API来完成,official guide专门构建在AppMessage之上,以提供适合UI同步的系统。以下示例取自此{{3}}中的AppSync部分,并显示了watchapp方面的内容:

  1. 要同步监视字段,您的应用需要以字节为单位声明输入和输出缓冲区大小。

    const int inbound_size = 64;
    const int outbound_size = 64;
    app_message_open(inbound_size, outbound_size);
    
  2. 准备数据的初始值。

    Tuplet initial_values[] = {
      TupletInteger(WEATHER_ICON_KEY, (uint8_t) 1),
      TupletCString(WEATHER_TEMPERATURE_KEY, "42°C"),
    };
    
  3. 保留全局内存以存储AppSync结构和您的词典。

    #include <...>
    
    AppSync sync;
    uint8_t sync_buffer[32];
    
  4. 初始化同步。

    app_sync_init(&sync, sync_buffer, sizeof(sync_buffer),
                  initial_values, ARRAY_LENGTH(initial_values),
                  sync_tuple_changed_callback, sync_error_callback, NULL);
    
  5. 处理第一次及以后的更新。

    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()
    }
    
  6. 最后,您可以更新手表端的值。在确认应用程序时调用回调。

    Tuplet new_tuples[] = {
      TupletInteger(WEATHER_ICON_KEY, (uint8_t) 3),
      TupletCString(WEATHER_TEMPERATURE_KEY, "73°C"),
    };
    
    app_sync_set(&sync, new_tuples, 2);
    
  7. 我不是iOS开发人员,所以我对Objective C方面的帮助不大,但我上面链接的文章建议阅读SDK附带的iOS WeatherDemo应用程序以获得完整的示例。