ARWebServerActivity是一个UIActivity子类,它为UIActivityViewController提供了一个“通过Web服务器共享”的动作,以便通过swisspol/GCDWebServer和Twitter Bootstrap UI来共享文件。
您可以分享
要拉取swisspol/GCDWebServer子模块,请运行
git clone --recursive https://github.com/alexruperez/ARWebServerActivity.git
UIActivity仅支持iOS >= 6,因此其子类也如此。-fobjc-arc编译器标志。将ARWebServerActivity子目录添加到您的项目中。除了swisspol/GCDWebServer及其依赖项外,没有其他必需库。
(参见示例Xcode项目)
只需alloc/init创建一个ARWebServerActivity实例,并在创建UIActivityViewController时将此对象传递给applicationActivities数组。
ARWebServerActivity *webServerActivity = [[ARWebServerActivity alloc] init];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[@"Hello World!", [UIImage imageNamed:@"Example"], [NSURL fileURLWithPath:@"file/path"], [NSURL URLWithString:@"file/url"], [@"data" dataUsingEncoding:NSUTF8StringEncoding], @{@"key": @[@"value1", @"value2"]}, @[@"value1", @"value2"]] applicationActivities:@[webServerActivity]];
[self presentViewController:activityViewController animated:YES completion:nil];请注意,您可以向任何UIActivityViewController中添加此活动,但只有当活动项中有有效对象时,才会向用户显示。
为了自定义此控件,您可以使用
- (instancetype)initWithPort:(NSNumber *)port bonjourName:(NSString *)bonjourName path:(NSString *)path activityViewController:(UIViewController *)activityViewController;端口: swisspol/GCDWebServer端口。bonjourName:如果您希望服务器在Bonjour中可见。路径:如果您想更改由您的服务器共享的本地文件路径。请注意,在共享后将删除它。activityViewController:如果您想更改默认控件UI,可以子类化ARWebServerActivityViewController并不要调用[super viewWillAppear:animated];,制作您自己的UIViewController或改进我的ARWebServerActivityViewController并提交pull request。ARWebServerActivityViewController 和示例 Xcode 项目添加(程序化)自动布局约束以实现屏幕旋转。ARWebServerActivityViewController 用户界面。