apple watch 开发关键知识点

1. apple watch extension数据获取

1.1 watchOS1 使用 openParentApplication:reply: 方法跟app请求数据

1.2 watchOS2 openParentApplication:reply: 方法被弃用,不能调用,需要使用 WCSession

  WCSession 使用有几个关键点需要注意:
  • app target和 extension target都需要添加 WatchConnectivity.framework
  • 调用WCSession的任何方法都需要给WCSession实例设置delegate(WCSessionDelegate)
代码例子:
    if ([WCSession isSupported]) {
        WCSession* session = [WCSession defaultSession];
        session.delegate = self;
        [session activateSession];
        NSDictionary *message = @{@"RequestType":@"loadMessageList"};
        [session sendMessage:message replyHandler:^(NSDictionary * _Nonnull replyMessage) {
            NSArray *messages = replyMessage[@"data"];
            [self.table setNumberOfRows:messages.count withRowType:@"MessageRowController"];
            [messages enumerateObjectsUsingBlock:^(NSDictionary * _Nonnull message, NSUInteger idx, BOOL * _Nonnull stop) {
                MessageRowController *row = [self.table rowControllerAtIndex:idx];
                [row.lbMessage setText:message[@"content"]];
                [row.lbTime setText:message[@"addTimeStrToDay"]];
            }];
        } errorHandler:^(NSError * _Nonnull error) {
        }];
    }

1.3 另外一种方式是通过App Group方式共享数据

2. apple watch 中显示图片

  watchOS中图片用 WKInterfaceImage 对象


- (void)setImage:(nullableUIImage *)image; // 图片在app包下面,用这种方式

- (void)setImageNamed:(nullableNSString *)imageName; // 图片在watch app包下面,用这种方式


  

3. 发消息时错误7006

   有时候iphone端往watch发送消息,说watch上没有安装app。解决办法就是iPhone apple watch app里面找到对应的app的在watch上显示app选项,先取消再打开。

你可能感兴趣的:(ios)