RBSentinel 可帮助填补 Apple Watch 与父应用程序之间的沟通差距。它提供了一个基于 REST 的接口来处理 watchapp 所需的信息。
RBSentinel 可以通过将 RBSentinel.h 和 .m 添加到项目文件夹中手动添加到项目中。首选的安装方法是使用 cocoapods。
pod 'RBSentinel'
RBSentinel 受到 MMWormhole 的启发,提供了一种在特定资源上执行 CRUD 操作的方法。Sentinel 具有在应用程序未打开或处于后台时也能监听特定资源更新的能力。
初始化
self.sentinel = [[Sentinel alloc] initWithGroupIdentifier:@"group.sentinel"];
其中 groupIdentifier 是应用程序的组标识符
要将监听器添加到特定资源
[self.sentinel addListenerForResource:@"message" withCompletionHandler:^(id response) {
[weakSelf.parentAppMessage setText:response];
}];
每当有更新发布到该特定资源时,都会调用完成处理程序。可以添加多个监听器到同一个资源。这些监听器本质上是在监听特定资源的更新。要向特定资源发布更新
[self.sentinel didUpdateResource:@"message" withContent:self.userInput.text];
上述更新将触发之前添加到该特定主题的监听器。
除了监听器之外,Sentinel 还允许我们在特定资源类型上执行获取、发布、更新、删除操作。要启用处理器,应用程序委托需要以下行
[Sentinel handleWatchKitExtensionRequest:userInfo reply:reply];
例如,如果资源类型是发布,那么 sentinel 会查找 PostHandler 类,并调用获取、发布、更新、删除方法。典型的请求看起来像
[self.sentinel performRequestofType:GET forResource:@"post" withParameters:@{@"1":@"2"} andCompletionHander:^(id response) {
NSLog(@"RESPONSE %@", response);
}];
上述请求通过 PostHander 类调用了发布方法。以下是 Sentinel 如何解析资源到处理器的方式。
发布 => PostHandler 消息 => MessageHandler
@interface PostHandler : NSObject<SentinelHandlerProtocol>
@end
@implementation PostHandler
-(id)get:(id)parameters {
// gets called for request type get
}
-(id)post:(id)parameters {
// gets called for request type post
}
-(id)remove:(id)parameters {
// gets called for request type remove
}
-(id)update:(id)parameters {
// gets called for request type update
}
MIT 许可证 (MIT)
版权所有 (c) 2014 RoshanNindrai
特此授予任何获得此软件及其相关文档副本(“软件”)的个人免费权利,在不限制使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许任何有权获取软件的个人这样做,但须遵守以下条件
上述版权声明和此许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或默示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论是在合同行为、侵权行为或其他行为中产生的、与软件或其使用或其他方式有关的情况下。