文档章节

iOS 调用本地系统分享

AustinKuture
 AustinKuture
发布于 2017/05/08 10:54
字数 401
阅读 996
收藏 3

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

1,实现效果:

2,源码(123.pfd是要分享的文件,可以根据自己需要进行自定义)


#import "ViewController.h"

@interface ViewController ()<UIDocumentInteractionControllerDelegate>

@property (nonatomic,strong)UIDocumentInteractionController *documentInteractionController;

@property (weak, nonatomic) IBOutlet UIButton *openIn;
@property (nonatomic,strong) UIButton *shareB;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    _shareB = [[UIButton alloc]initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width * 0.5 - 75, 250, 150, 50)];
    [_shareB setTitle:@"Share" forState:UIControlStateNormal];
    _shareB.backgroundColor = [UIColor grayColor];
    [_shareB setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [_shareB addTarget:self action:@selector(shareIn:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:_shareB];
    
}

- (IBAction)openIn:(UIButton *)sender {
    NSString *localPath = [[NSBundle mainBundle] pathForResource:@"123" ofType:@"pdf"];
    NSURL *pathUrl = [[NSURL alloc]initFileURLWithPath:localPath];
    
    // Initialize Document Interaction Controller
    self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:pathUrl];
    
    // Configure Document Interaction Controller
    [self.documentInteractionController setDelegate:self];
    
    // Present Open In Menu
    [self.documentInteractionController presentOptionsMenuFromRect:[self.openIn frame] inView:self.view animated:YES];
}

#pragma mark Document Interaction Controller Delegate Methods
- (UIViewController *) documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller {
    return self;
}

- (void)shareIn:(UIButton *)shareb{
    
        NSString *localPath = [[NSBundle mainBundle] pathForResource:@"123" ofType:@"pdf"];
        UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[localPath] applicationActivities:nil];
        UIActivityViewControllerCompletionHandler myBlock = ^(NSString *activityType,BOOL completed)
        {
            NSLog(@"调用分享的应用id :%@", activityType);
            if (completed)
            {
                NSLog(@"分享成功!");
            }
            else
            {
                NSLog(@"分享失败!");
            }
        };
        activity.completionHandler = myBlock;
        //    activity.completionWithItemsHandler = myBlock;
    
        if ([[UIDevice currentDevice].model isEqualToString:@"iPhone"]) {
            [self presentViewController:activity animated:YES completion:nil];
        }
        else if([[UIDevice currentDevice].model isEqualToString:@"iPad"])
        {
            UIPopoverPresentationController *popover = activity.popoverPresentationController;
            if (popover) {
                popover.sourceView = _shareB;
                popover.permittedArrowDirections = UIPopoverArrowDirectionUp;
            }
            [self presentViewController:activity animated:YES completion:nil];
        }
        else
        {
            //do nothing
        }

}

 

© 著作权归作者所有

AustinKuture
粉丝 13
博文 40
码字总数 23740
作品 0
海淀
个人站长
私信 提问
加载中

评论(0)

Phonegap各类商业插件

【Phonegap商业插件服务】[目前插件已经支持到Phonegap最新版本] 1.phonegap-百度社会化分享-andriod插件 v2.0 【该插件支持微信分享和朋友圈分享,qq好友分享,微博分享】 2.phonegap百度社...

夜澜小雨
2015/07/15
1.6K
0
iOS (APP)进程间8中常用通信方式总结

1 URL Scheme 2 Keychain 3 UIPasteboard 4 UIDocumentInteractionController 5 local socket 6 AirDrop 7 UIActivityViewController 8 App Groups iOS系统是相对封闭的系统,App各自在各自的......

osc_oocvkx3x
2018/04/02
5
0
重大发布 | UWA GOT支持 iOS!

这是一条信息量巨大的推文:UWA GOT支持 iOS啦,本次发布又将成倍地节省研发团队的优化时间,提升开发效率!欢迎大家奔走相告! 和Android平台一样,iOS 模式支持本地直接进行真机测试,在U...

UWA
03/31
0
0
用vue重构小程序踩坑之旅(1) --- 微信sdk验签

  问题1:验签失败   惨景:用微信sdk实现h5页面的分享,且每个页面分享内容需要自定义.   坑1:在Android和ios的系统中,同一个页面Android验签成功,ios验签失败   解决方案:   因为在...

osc_44jaxl0s
2019/02/13
1
0
iPhone用户请注意:你的邮件App得禁用,刚曝光的安全漏洞,iOS 6以上设备全中招...

Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 白交 发自 凹非寺 量子位 报道 | 公众号 QbitAI 你的iPhone不...

程序员大咖
04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在Windows上安装pip? - How to install pip on Windows?

问题: pip is a replacement for easy_install . pip替代了easy_install 。 But should I install pip using easy_install on Windows? 但是我应该在Windows上使用easy_install安装pip吗? ......

fyin1314
今天
21
0
gitlit二级目录访问

由于我们只有一个域名暴露,特殊需求,所以需要二级目录访问 配置文件在 defaults.properties 第1985行 contextPath 改掉就好了 # Context path for the GO application. You might want to...

shzwork
今天
24
0
OSChina 周一乱弹 —— 我电脑传染了新冠脚气

@性感码农 :不结婚,被老爸说,回村里别人都瞧不起你,及即使你赚了很多钱,不结婚,永远没有人瞧得起你。挺纳闷的,要别人瞧得起我干嘛 又不回村里, 跟他们生活也没什么交集啊, 用得着他...

小小编辑
今天
18
0
类加载的过程

加载->链接->初始化; 其中链接又分为:验证->准备->解析。

曦鱼violet
今天
21
0
Linux下几个与磁盘空间和文件尺寸相关的命令

硬盘是计算机非常重要的一个部件,不管是代码,还是 UI 、声音、文档,抑或是没人时偷偷看的小视频,都需要保存在硬盘里。 对于很多 Linux 服务器,会进行很多的编译操作。而编译操作在很多情...

Linux就该这么学
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部