【问题标题】:Synchronize Text View with Pebble将文本视图与 Pebble 同步
【发布时间】:2014-03-19 15:03:27
【问题描述】:

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

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

【问题讨论】:

    标签: ios7 uitextview pebble-watch pebble-sdk


    【解决方案1】:

    这可以使用AppSync API 来完成,它建立在AppMessage 之上,专门用于提供适合UI 同步的系统。以下示例取自 official guide 中的 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);
      

    我不是 iOS 开发人员,因此在 Objective C 方面我无法为您提供太多帮助,但我上面链接的文章建议阅读 SDK 附带的 iOS WeatherDemo 应用程序以获取完整示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      相关资源
      最近更新 更多