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
用户界面。