打开WatchOS2时获取更新的应用程序上下文

时间:2016-05-11 11:53:19

标签: ios watch-os-2 watchconnectivity

所以我在WatchOS2上经历了很多教程。

  1. 我可以从iPhone模拟器和iWatch模拟器中增加,减少计数器(标签值)(两者都处于活动状态)。

  2. 当iOS应用程序处于非活动状态(已终止)时,watchOS2应用程序处于活动状态,在watchOS2应用程序中更改值,然后打开iOS应用程序,计数器标签正在更改。

  3. 但反过来却没有用。在watchOS2应用程序处于非活动状态(已终止)时更改iOS应用程序中的标签计数器。然后打开watchOS2 app但值不变或与iOS应用程序不一样。

    为了更改值,我使用了这种方法

       NSDictionary *dic = @{@"counter":[NSNumber numberWithInt:self.counter]};
       WCSession *session = [WCSession defaultSession];
       NSError *error;
      [session updateApplicationContext:dic error:&error];
    

    我使用了this教程,根据本教程,[session updateApplicationContext:dic error:&error];是一种更新或更改整个上下文的方法。因此,当watchOS2应用程序处于活动状态时,请不要在watchOS2应用程序终止时获取iOS应用程序更新的最新上下文。

    请建议我要做什么。我没有找到单个解决方案或找到所有教程,但没有解决这个问题。

1 个答案:

答案 0 :(得分:0)

您有两个应用程序上下文:一个从iOS到观看操作系统,另一个从中反过来。不要把它们视为一体。

你可能会考虑以下想法:

仅使用iOS应用中的上下文到手表。

  1. iOS保持状态,将状态更新作为上下文发送给手表。

  2. 如有必要,通过用户信息队列从watchOS发送差异到iOS。用户信息消息应包含类似"将1添加到计数器"。用户信息不会丢失,如果目前无法交付,则会排队。

  3. 当iOS应用收到"将1添加到计数器"时,它会更新其UI,并将最终结果作为上下文发送给手表。

  4. 当用户有两只手表时,这也应该有效。