2

我有一个执行一些计算的 iPhone 应用程序。它运作良好。现在我想创建一个 WatchKit 扩展和目标,以控制计算的开始并在计算完成后显示结果以及更新进度(例如,显示 Watch 应用程序时完成的百分比,并发送通知当进度达到显着百分比标记时,从 iPhone 应用程序转移到 iWatch)。

我发现一些教程解释了使用NSUserDefaultsinitWithSuitName提供应用程序组,然后添加数据对象以进行同步。我可以使用 KVO 在 Watch 上显示百分比标签。

当我在这里探索可能的架构时,您是否知道一些替代方法来实现这一点?使用应用程序组是苹果推荐的方法吗?

4

3 回答 3

0

您可以使用打开的应用程序来启动您的计算。然后您可以通过切换发送信息。

于 2015-04-15T10:56:22.147 回答
0

应用组不再在 watchOS 1 上运行。您需要使用WatchConnectivity框架。在 watch 中获取值后,您可以使用 Reactive 或 Rx 来更新值而不是 KVO。

有用的网址:

https://developer.apple.com/documentation/watchconnectivity

https://kristina.io/watchos-2-how-to-communicate-between-devices-using-watch-connectivity/

https://www.natashatherobot.com/watchconnectivity-application-context/

于 2017-12-04T12:54:32.843 回答
0

你可以按照这个步骤

设置 Watch kit 会话并创建数据字典后,您可以使用发送消息

[[WCSession defaultSession] sendMessage:<Your Dictionary> replyHandler:^(NSDictionary<NSString *,id> * _Nonnull replyMessage) {

        //You task on completion

    } errorHandler:^(NSError * _Nonnull error) {

        if (error)
        {
            //Handle the error
        }
    }];

在手表扩展端您可以设置委托方法

- (void)session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *, id> *)message replyHandler:(void(^)(NSDictionary<NSString *, id> *replyMessage))replyHandler
{
     //Handle the received data
}

你完成了

于 2017-12-04T12:50:41.177 回答