iOS_iWatch学习篇—简单iPhone与iWatch交互

今天简单学习了iWatch的开发,做了个demo

介绍下demo:

iWatch端界面:

iOS_iWatch学习篇—简单iPhone与iWatch交互_第1张图片
iWatch端界面

iPhone端界面:

iOS_iWatch学习篇—简单iPhone与iWatch交互_第2张图片
iPhone端界面

功能:

iPhone端填写姓名后,点击发送,即发送消息(包含姓名、头像名)给iWatch,iWatch接收到消息后,将姓名和头像设置上去,然后返回消息给iPhone告知应受到消息。

iOS_iWatch学习篇—简单iPhone与iWatch交互_第3张图片
效果图

接下来是实现步骤:

搭界面就不再说了

iOS_iWatch学习篇—简单iPhone与iWatch交互_第4张图片
Paste_Image.png

首先是iWatch端:

1、导入通讯框架

#import //------第一步:通讯框架------

2、签协议

@interface InterfaceController()//-----第二步:通信协议------

3、激活会话:

尽量提早激活,这边在视图显示时进行激活

- (void)willActivate {
    // This method is called when watch view controller is about to be visible to user
    [super willActivate];

    WCSession *session = [WCSession defaultSession];
    session.delegate = self;
    [session activateSession];//激活会话
}

4、接着就是实现该代理方法(收到消息的代理方法)

将消息里面携带的信息“message”设置上去,同时在此处给iPhone端回复了消息

//收到消息代理方法
-(void)session:(WCSession *)session didReceiveMessage:(NSDictionary *)message
{
    dispatch_async(dispatch_get_main_queue(), ^{
        [self.ima setImageNamed:message[@"image"]];
        [self.name setText:message[@"name"]];
    
        //向iPhone发送回复消息,代码块参数不能为nil
        [session sendMessage:@{@"result":@"OK!"}    replyHandler:^(NSDictionary * _Nonnull replyMessage) {
        
        } errorHandler:^(NSError * _Nonnull error) {
        }];
    });
}

然后是iPhone端的:

步骤与iWatch差不多,这边是在点击“发送”按钮时向iWatch发送消息

1、导入通讯框架

#import //------第一步:通讯框架------

2、签协议

@interface InterfaceController()//-----第二步:通信协议------

3、激活会话

- (void)viewDidLoad {
    [super viewDidLoad];
    WCSession *session = [WCSession defaultSession];
    session.delegate = self;
    [session activateSession];
}

4、“发送”按钮,发送消息

- (IBAction)sendMsg:(UIButton *)sender
{
    dispatch_async(dispatch_get_main_queue(), ^{
        //发送消息给iWatch
        [[WCSession defaultSession]sendMessage:@{@"name":self.txtName.text,@"image":@"3.png"} replyHandler:^(NSDictionary * _Nonnull replyMessage) {
        
        
        } errorHandler:^(NSError * _Nonnull error) {
        
        
        }];
    });
}

5、最后是收到iWatch回复的消息后的处理

-(void)session:(WCSession *)session didReceiveMessage:(NSDictionary *)message
{
    dispatch_async(dispatch_get_main_queue(), ^{
    self.lblRst.text = message[@"result"];
    
    });

}

你可能感兴趣的:(iOS_iWatch学习篇—简单iPhone与iWatch交互)