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

今天简单学习了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"];
    
    });

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,022评论 0 15
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,294评论 4 61
  • 2016.08.07. 不是我不想家,家这个东西,内心不够强大的人是不能想的,泪腺不受控,一想就失眠。 到上海一个...
    周采采阅读 149评论 0 0
  • JAVA套接字之UDP编程 1 UDP协议 用户数据报协议UDP是无连接的服务。在无连接的情况下,两个实体之间的通...
    yanzhelee阅读 798评论 0 0
  • 关于朋友 我不是很会交朋友的人,所以我的朋友很少;我不是很会与朋友相处的人,所以我的朋友更少,只有零星的三两只。 ...
    栀子飞翔阅读 245评论 0 0