App和iWatch之间的通信:使用app group是唯一的方法吗?

时间:2015-04-15 10:19:46

标签: ios nsuserdefaults watchkit ios-app-group

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

我找到some tutorials解释使用 NSUserDefaults initWithSuitName 提供应用程序组,然后将数据对象添加到同步。我可以使用KVO在Watch上显示百分比标签。

当我在这里探索可能的架构时,您是否了解一些替代方法来实现这一目标?使用应用程序组是Apple推荐的方法吗?

3 个答案:

答案 0 :(得分:0)

您可以使用open app启动计算。那么你可以通过切换发送信息。

答案 1 :(得分:0)

您可以按照以下步骤操作

设置监视工具包会话和创建数据字典后,您可以使用此

发送消息
Launcher

在手表延伸侧 您可以设置委托方法

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

        //You task on completion

    } errorHandler:^(NSError * _Nonnull error) {

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

你已经完成了

答案 2 :(得分:0)

应用程序组不再适用于watchOS 1.您需要使用WatchConnectivity框架。获得监视值后,您可以使用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/