美文网首页iWatch
iOS_iWatch学习篇—简单iPhone与iWatch交互

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

作者: 欧币杰昔 | 来源:发表于2016-07-26 19:54 被阅读703次

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

    介绍下demo:

    iWatch端界面:

    iWatch端界面

    iPhone端界面:

    iPhone端界面

    功能:

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

    效果图

    接下来是实现步骤:

    搭界面就不再说了

    Paste_Image.png

    首先是iWatch端:

    1、导入通讯框架

    #import <WatchConnectivity/WatchConnectivity.h>//------第一步:通讯框架------
    

    2、签协议

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

    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<NSString     *,id> *)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<NSString *,id> * _Nonnull replyMessage) {
            
            } errorHandler:^(NSError * _Nonnull error) {
            }];
        });
    }
    

    然后是iPhone端的:

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

    1、导入通讯框架

    #import <WatchConnectivity/WatchConnectivity.h>//------第一步:通讯框架------
    

    2、签协议

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

    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<NSString *,id> * _Nonnull replyMessage) {
            
            
            } errorHandler:^(NSError * _Nonnull error) {
            
            
            }];
        });
    }
    

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

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

    相关文章

      网友评论

        本文标题:iOS_iWatch学习篇—简单iPhone与iWatch交互

        本文链接:https://www.haomeiwen.com/subject/kbanjttx.html