ios 跳转第三方App文档预览

今天有个需求,从App上下载附件可预览,产品要求简单实现就是跳转第三方App预览即可

具体实现代码

- (IBAction)thirdPartAppAction:(UIButton *)sender {
    [self thirdAppPreview];
}

- (void)thirdAppPreview
{
    NSString *docPath = @"";
    // 测试用网络下载文件部分忽略
    // 数据库路径-沙盒路径
    NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) lastObject];
    NSString *fileName = [doc stringByAppendingPathComponent:@"test.xlsx"];
    
    // 复制本地数据到沙盒中
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if (![fileManager fileExistsAtPath:fileName]) {
        // 获得数据库文件在工程中的路径——源路径。
        docPath = [[NSBundle mainBundle] pathForResource:@"test"ofType:@"xlsx"];
        
        NSError *error ;
        
        if ([fileManager copyItemAtPath:docPath toPath:fileName error:&error]) {
            NSLog(@"数据库移动成功");
        } else {
            NSLog(@"数据库移动失败");
        }
    }
    
    //获取路径文件url
    NSURL*fileUrl = [NSURL fileURLWithPath:fileName];
    
    // 初始化UIActivityViewController
    NSArray *activityItems = @[fileUrl];
    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
    //不出现在活动项目
    activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll];
    [self presentViewController:activityVC animated:YES completion:nil];
    // 分享之后的回调
    activityVC.completionWithItemsHandler = ^(UIActivityType  _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {
        if (completed) {
            NSLog(@"completed");
            //分享 成功
        } else  {
            NSLog(@"cancled");
            //分享 取消
        }
    };
}

demo 地址 https://github.com/destinyzhao/DocumentPreview

1530758958085.jpg

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏谈补锅

控制器和应用数据存储

1、UINavigationController, 继承UIViewController,UINavigationController以栈的形式保存子控制器

10930
来自专栏進无尽的文章

基础篇- 沙盒以及文件的操作和存取

iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒,所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列...

25210
来自专栏ShaoYL

iOS--多线程之线程间通讯

29580
来自专栏Netkiller

vsftpd FTP服务器安装与配置

本文节选自《Netkiller Linux 手札》 3.4. vsftpd - The Very Secure FTP Daemon 3.4.1. 安装 vsf...

46240
来自专栏進无尽的文章

编码篇 - iOS各种权限状态的获取及注意事项

关于系统权限的获取,相信大家都不陌生,可是其中蕴含的知识确实不少。 怎样向用户索取权限是非常重要的。例如LBS类的应用,如果在索取权限时遭到用户的拒绝,那么该...

60720
来自专栏ShaoYL

iOS----轻松掌握AFN网络顶级框架

31770
来自专栏一“技”之长

iOS开发swift版异步加载网络图片(带缓存和缺省图片)

    与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存。

16830
来自专栏Alice

iOS afnetworking最新版报错 没有AFHTTPRequestOperationManager类了

今天开了一个小项目   用的是pod   然后  安装好 Afnetworking之后   发现 AFHTTPRequestOperationManager  ...

68290
来自专栏coding...

Objective-c 多线程操作 自定义NSOperation 模拟下载写在前面效果分析代码DEMO地址

使用多线程下载图片,使用内存缓存和磁盘缓存。 这里只为理解NSOperation及其派生类 真要应用到APP中 请下载成熟的第三方库

13160
来自专栏Alice

iOS iOS与html进行交互

实现的 效果就是上边那样:首先通过webview 进行网络请求 然后进行显示。          然后点击下一页的按钮 通过js的响应显示另一个网页      ...

443100

扫码关注云+社区

领取腾讯云代金券