2014-03-19 44 views

回答

1

這可以使用AppSync API完成,它建立在AppMessage之上,專門用於提供適用於UI同步的系統。下面的例子是從的AppSync部分採取了這種official guide和展示的東西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開發者,所以我不能幫你多少對客觀事物的C面,不過我上面鏈接的文章建議閱讀的iOS應用WeatherDemo附帶的SDK爲一個完整的例子。