文档章节

iOS 调用本地系统分享

AustinKuture
 AustinKuture
发布于 2017/05/08 10:54
字数 401
阅读 104
收藏 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
粉丝 12
博文 40
码字总数 23740
作品 0
海淀
iOS工程师
Bytom移动端钱包SDK开发基础

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom Bytom-Mobile-Wallet-SDK 是从bytom源码中抽离出的钱包层代码,并且对钱包...

比原链Bytom
09/10
0
0
谷歌Flutter跨平台应用开发SDK迎来首个发行预览版本

谷歌Flutter跨平台应用开发SDK迎来首个发行预览版本 2018-06-22 12:26编辑: 枣泥布丁分类:程序人生来源:程序师 跨平台Google Flutter预览版本 招聘信息: 图像处理及模式识别工程师 C/C+...

枣泥布丁
06/22
0
0
微软提供移植iPhone应用到Windows Phone 7上的工具

windows phone 7 iphone5 微软发布了一个API映射工具、指导手册和一组分享经验的视频,帮助简化移植iPhone/iOS应用程序到Windows Phone 7(WP 7)上的工作。 微软Windows Phone互操作组创建了...

junwong
2012/03/09
0
0
iOS逆向与安全(一):环境搭建

前言 从本篇文章开始,笔者会整理iOS逆向相关的笔记。作为一位新人,希望通过整理笔记能够更好的理解和掌握知识。作为新人能力有限,在行文时难免出现错误欢迎批评和指正。 前期准备 一台越狱...

紫电清霜Owenli
09/16
0
0
dropbox 死掉后 IOS 7.1 应用发布替代解决方案

由于大家都知道的原因Dropbox 挂掉了,免费的 https文件分享链接没有了,广大通过 dropbox https 分享链接来发布ios应用的童鞋悲剧了 。今天就给大家支个招儿。 分析 ios 7.1 安装链接 格式 ...

LuoZhihui
2014/07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jQuery学习笔记180924

jQuery - AJAX 简介 什么是 AJAX? AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。 简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示...

颖伙虫
20分钟前
1
0
springboot整合vue小试牛刀

序 本文主要研究一下如何在springboot工程整合vue maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-we......

go4it
21分钟前
1
0
使用python的profiler工具

主要用来检测python coding的执行时间 fly profiler

steel7c4
25分钟前
0
0
大数据日知录笔记

硬件成本的快速下降,使得电子设备的无处不在成为可能,数据无处不在,无时不在. IBM用3V(Volume,Velocity,Variety)来描述大数据的特点,后来又增加了Value这个维度,即价值密度低的数据成为大数据...

凌渡
34分钟前
0
0
IDEA、WebStorm最新永久激活方式

今天早上一大早打开IDEA发现激活已过期,遂开始寻找激活码。但是一直不成功,后来终于找到一种比较靠谱的激活方式。在此记录下来,以备不时之需。 目前网上现有的激活方式大概有这么三种 激活...

耒耒耒耒耒
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部