测试已测试 | ✓ |
语言语言 | Obj-CObjective C |
版权 | MIT |
发布最后发布 | 2014年12月 |
由 Clay Allsopp、Mert Dümenci、Clay Allsopp 维护。
依赖 | |
SVProgressHUD | ~> 1.0 |
HexColors | ~> 2.0 |
TransitionKit | ~> 2.1 |
BlocksKit | ~> 2.2 |
HybridKit 是一个简单、可扩展的消息系统,适用于您的 Web/native 混合移动应用程序。
通过使用 HybridKit for JavaScript,您可以从您的网页向原生应用程序发送指令进行处理。
HybridKit 使用 指令处理程序 来处理使用 JavaScript 库 发送的指令。HybridKit 内置了 实用的默认值,或者您可以编写全新的处理程序。
HybridKit for iOS 需要 CocoaPods。将其添加到您的 Podfile
pod 'HybridKit'
运行 pod install
并开始使用!
您可以通过使用 HYWebViewController
代替 UIViewController
来利用 HybridKit。默认情况下,HYWebViewController
会自动注册默认的指令处理器并准备接收指令。
设置 HYWebViewController
并加载一个 URL。
HYWebViewController *webViewController = [[HYWebViewController alloc] initWithParams:@{@"url" : @"http://google.com"}];
// or
HYWebViewController *webViewController = [[HYWebViewController alloc] init];
webViewController.url = [NSURL URLWithString:@"http://google.com"];
[self presentViewController:webViewController animated:YES completion:nil];
默认情况下,HybridKit 包括以下指令:alert
、open_url
、set_url
、set_url_refresh
、set_title
、set_scroll_enabled
、set_background_color
、deceleration_rate
、trigger_event
和 javascript
。
有关内置处理程序更多信息,请参阅 HybridKit-JS Wiki。
您可以使用 JavaScript 库 轻松创建用于自定义指令的新指令处理器。
只需创建一个 HYWebViewCommand
子类并重写 handleCommandString:dictionary
和 respondsToCommandString
方法。
@interface HideNavigationBarHandler : HYWebViewCommand
@end
@implementation HideNavigationBarHandler
-(void)handleCommandString:(NSString *)commandString dictionary:(NSDictionary *)commandDictionary {
if ([commandString isEqualToString:@"hide_navbar"]) {
self.webViewController.navigationController.navigationBarHidden = [commandDictionary[@"hidden"] boolValue];
}
}
- (BOOL)respondsToCommandString:(NSString *)commandString {
return [commandString isEqualToString:@"hide_navbar"];
}
@end
将新指令处理器注册到一个 HYWebViewController
实例。
[hybridKitViewController registerCommandHandler:[HideNavigationBarHandler new]];
使用 JavaScript 库 调用您的新的指令。
HybridKit.runCommand("hide_navbar", {hidden: true});
HybridKit for iOS 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。