apple watch 开发关键知识点

来源:互联网 发布:阿里云虚拟主机访问php 编辑:程序博客网 时间:2024/06/05 07:30

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<NSString *,id> * _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选项,先取消再打开。

0 0
原创粉丝点击