voidxin'blog

越分享,越牛逼.You right,You BB

使用UIActivityViewController实现AirDrop分享

| Comments

今天闲来无事,无意中看了一篇利用AirDrop实现文件传输的文章,于是动手写了一个很简单的demo。其实就是使用UIActivityViewController。 具体实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#import "DemoViewController.h"
@interface DemoViewController ()
@property(nonatomic,strong)UIWebView *webView;

@end

@implementation DemoViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.view.backgroundColor=[UIColor whiteColor];
    
    [self addUI];
    [self loadDataFile];
   
}
-(void)loadDataFile{
    NSURL *fileURL=[self returnURLWithFileName:@"demo.png"];
    [self.webView loadRequest:[NSURLRequest requestWithURL:fileURL]];
}
-(void)addUI{
    //add webView
    [self.view addSubview:self.webView];
    //add rightBarItem
     self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc]initWithTitle:@"分享" style:UIBarButtonItemStyleDone target:self action:@selector(sharedAction)];
}
- (UIWebView *)webView{
    if (!_webView) {
        _webView=[[UIWebView alloc]init];
        _webView.frame=self.view.bounds;
    }
    return _webView;
}
#pragma mark -return URL for fileName
-(NSURL *)returnURLWithFileName:(NSString *)fileName{
    NSArray *arrs=[fileName componentsSeparatedByString:@"."];
    NSString *pathStr=[[NSBundle mainBundle] pathForResource:arrs.firstObject ofType:arrs[1]];
    NSURL *fileURL=[NSURL fileURLWithPath:pathStr];
    return fileURL;
    
    
}

#pragma mark rightBarItem Action
-(void)sharedAction{
    NSLog(@"rightBarItem is clicked");
    NSURL *fileURL=[self returnURLWithFileName:@"demo.png"];
    NSArray *urls=@[fileURL];
    UIActivityViewController *activituVC=[[UIActivityViewController alloc]initWithActivityItems:urls applicationActivities:nil];
    NSArray *cludeActivitys=@[UIActivityTypePostToFacebook,
                               UIActivityTypePostToTwitter,
                               UIActivityTypePostToWeibo,
                               UIActivityTypePostToVimeo,
                               UIActivityTypeMessage,
                               UIActivityTypeMail,
                               UIActivityTypeCopyToPasteboard,
                               UIActivityTypePrint,
                               UIActivityTypeAssignToContact,
                               UIActivityTypeSaveToCameraRoll,
                               UIActivityTypeAddToReadingList,
                               UIActivityTypePostToFlickr,
                               UIActivityTypePostToTencentWeibo];
    activituVC.excludedActivityTypes=cludeActivitys;

    [self presentViewController:activituVC animated:YES completion:nil];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

详细的demo可以访问我的github去下载,希望可以一起交流一起进步: demo下载地址:https://github.com/voidxin/AirDropDemoWithZX

Comments