美文网首页工具相关
iOS中如何储存和分享文件给微信和QQ好友

iOS中如何储存和分享文件给微信和QQ好友

作者: 曾书书_ | 来源:发表于2020-06-11 12:20 被阅读0次

    前言:由于iOS的沙盒机制,我们自己开发的App大部分情况下只能控制自己的沙盒空间,想要和系统或其他App互相同享文件一直都比较困难,因此有产品经理设计功能时涉及到文件下载保存,会标注此功能只适合andriod。(iOS表示很尴尬)

    现状:随着苹果自己开发的 文件 app,功能越来越完善,我们不用第三方的软件就能很方便的管理iphone的文件,加上iOS8之后出的扩展功能,很多APP实现了自己的扩展,所有目前我们已经能很方便的进行文件的下载和共享功能。

    利用UIActivityViewController进行图片和链接的分享,网上已经有很多的攻略,不熟悉的去搜索一下就知道怎么去实现了,这里主要是讲一下文件的操作。

    原理:

    1.把需要保存到系统,分享给微信和QQ好友的文件,储存到我们app自己的沙盒里面

    2.UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[[NSURL fileURLWithPath:filePath]] applicationActivities:nil];

    把文件的路径直接放入到initWithActivityItems里面的参数中,注意这里只需要放文件路径的URL即可,相关的标题,图片什么的都不需要加入,否则会默认为图片或链接的分享。

    调用完UIActivityViewController之后,我们能看到如下的视图

    这时候,我们可以存储到 文件,也可以点击微信和QQ,分享到好友。(要出现微信和QQ,必须有安装对应的应用)。

    扩展:

    有时候我们的需求可能是一个文件的链接,这时候我们需要怎么实现呢?

    其实原理还是一样,需要先把文件通过链接下载到本地,然后获取本地的文件路径进行分享,伪代码如下:

     NSURL *shareUrl = [NSURL URLWithString:@"http://www.gov.cn/zhengce/pdfFile/2020_PDF.pdf"];

        [[[NSURLSessionsharedSession]dataTaskWithURL:shareUrlcompletionHandler:^(NSData*_Nullabledata,NSURLResponse*_Nullableresponse,NSError*_Nullableerror) {

            if(!error) {

                //这里需要正确的文件格式,否则分享后无法正常打开,这里可以去获取URL链接里面的文件格式,具体根据实际的业务需求去实现。

                NSString *filePath = [NSString stringWithFormat:@"%@/2020_PDF.pdf", NSTemporaryDirectory()] ;

                [datawriteToFile:filePathatomically:YES];

                dispatch_async(dispatch_get_main_queue(), ^{

                    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[[NSURL fileURLWithPath:filePath]] applicationActivities:nil];

                    activityVC.modalPresentationStyle = UIModalPresentationPopover;

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

                });

            }

        }]resume];

    总结:希望对需要的这个功能的人能起到一点帮助。

    相关文章

      网友评论

        本文标题:iOS中如何储存和分享文件给微信和QQ好友

        本文链接:https://www.haomeiwen.com/subject/vntbtktx.html