使用Apple Watch和iPhone之间的WCSession共享数据

时间:2017-12-01 13:01:05

标签: objective-c watch-os

尝试使用updateApplicationContext,在Connect模拟器中工作的Watch连接(WCSession)的transferUserInfo,但在设备上尝试相同但不能正常工作时,将iPhone中的数据共享到Apple Watch。

设备:iPhone 6 plus(OS 11.1),Apple watch-Series 2(Watch OS 4.1)。

使用defaultSession并为watchConnectivity实现必要的委托方法。

iPhone方面:

步骤:1

if ([WCSession isSupported])
{
    [[WCSession defaultSession] setDelegate:self];
    [[WCSession defaultSession] activateSession];
}

步骤:2

[[WCSession defaultSession] transferUserInfo:dataDict];

Apple Watch方面:使用defaultSession 步骤:1

if ([WCSession isSupported])
{
    [[WCSession defaultSession] setDelegate:self];
    [[WCSession defaultSession] activateSession];
}

步骤:2

   -(void)session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *,id> *)userInfo
    {
       // code for data parsing which get from userInfo dictionary.
    }

1 个答案:

答案 0 :(得分:0)

我为我的项目做了这个

设置会话和创建数据字典后,您可以使用此

发送消息
[[WCSession defaultSession] sendMessage:dataDict 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
{
}

你已经完成了