iOS通过UIDocumentInteractionController实现应用间传文件

 更新时间:2023年01月15日 11:57:46   作者:头疼脑胀的代码搬运工  
这篇文章主要为大家介绍了iOS通过UIDocumentInteractionController实现应用间传文件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

话开篇:由于iOS沙盒机制,APP文件存储位置只能当前应用访问,这里简单记录一下用 UIDocumentInteractionController 实现APP间传文件。

一、实现效果

两个 APPTestProjectA 将文件通过 UIDocumentInteractionController 来传递到 TestProjectB

二、配置工程

要想通过系统 UIDocumentInteractionController 功能展示指定的APP,那么,需要在指定的工程 Info.plist 加入如下信息:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
<plist version="1.0" >
    <dict>
        <key> CFBundleDocumentTypes </key>
        <array>
            <dict>
                <key> LSHandlerRank </key>
                <string> Default </string>
                <key> LSItemContentTypes </key>
                <array>
                <string> com.adobe.pdf </string>
                    <string> public.data </string>
                    <string> com.microsoft.powerpoint.ppt </string>
                    <string> public.item </string>
                    <string> com.microsoft.word.doc </string>
                    <string> com.adobe.pdf </string>
                    <string> com.microsoft.excel.xls </string>
                    <string> public.image </string>
                    <string> public.content </string>
                    <string> public.composite-content </string>
                    <string> public.archive </string>
                    <string> public.audio </string>
                    <string> public.movie </string>
                </array>
            </dict>
        </array>
    </dict>
</plist>

三、用法

1、弹出文件其他打开方式工具栏

APP-A

self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:fileUrl];
self.documentInteractionController.delegate = self;
[self.documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];

2、接收文件

APP-B

其实这里的所说的 "接收文件" 是有些不妥的,因为,当 AppDelegate 的方法里获取到文件的沙盒路径已经是 APP-B 的了,这里只是拿来就用。

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
    if ([url.scheme isEqualToString:@"file"]) {
        NSString * replaceStr;
        #if TARGET_IPHONE_SIMULATOR//模拟器
        replaceStr = @"file://";
        #elif TARGET_OS_IPHONE//真机
        replaceStr = @"file:///private";
        #endif
        NSString * filePathStr = [[NSString stringWithFormat:@"%@",url] stringByReplacingOccurrencesOfString:replaceStr withString:@""];
        /** 业务逻辑 **/
    }
    return YES;
}

内容仅为简单记录,并不是什么新的技术。只是在开发的时候需要时权当个笔记。

以上就是iOS通过UIDocumentInteractionController实现应用间传文件的详细内容,更多关于iOS应用间传文件的资料请关注脚本之家其它相关文章!

相关文章

  • iOS实现摄像头实时采集图像

    iOS实现摄像头实时采集图像

    这篇文章主要为大家详细介绍了iOS实现摄像头实时采集图像,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • 安装win10+黑苹果双系统零基础教程(图文)

    安装win10+黑苹果双系统零基础教程(图文)

    这篇文章主要介绍了安装win10+黑苹果双系统零基础教程(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-01-01
  • iOS应用UI开发中的字体和按钮控件使用指南

    iOS应用UI开发中的字体和按钮控件使用指南

    这篇文章主要介绍了iOS应用UI开发中的字体和按钮控件使用指南,分别简单讲解了UILabel和UIButton的用法,需要的朋友可以参考下
    2016-01-01
  • iOS动画案例(1) 类似于qq账号信息里的一个动画效果

    iOS动画案例(1) 类似于qq账号信息里的一个动画效果

    做一个类似于qq账号信息里的一个动画,感觉挺有意思,下面给大家分享iOS动画案例(1) 类似于qq账号信息里的一个动画效果,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-01-01
  • IOS开发之路--C语言预处理

    IOS开发之路--C语言预处理

    由于预处理指令是在编译之前就进行了,因此很多时候它要比在程序运行时进行操作效率高。在C语言中包括三类预处理指令,今天将一一介绍:宏定义、条件编译、文件包含
    2014-08-08
  • iOS中关于UIWindow和statusbar的设置问题

    iOS中关于UIWindow和statusbar的设置问题

    最近在做开发时要做一个类似于UIAlertView的控件,做法是创建一个基于UIView的类,在里面进行自定义控件的设置,为了尽量模仿UIAlertView,在这个类里面创建了一个新的UIWindow并将self显示到这个window上
    2017-03-03
  • iOS实现左右拖动抽屉效果

    iOS实现左右拖动抽屉效果

    这篇文章主要介绍了iOS实现左右拖动抽屉效果,理解ios平台类似于QQ主页面,利用触摸事件滑动touchesMoved实现的效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • OC runtime学习笔记之关联对象

    OC runtime学习笔记之关联对象

    这篇文章主要介绍了OC runtime学习笔记之关联对象的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • iOS通过逆向理解Block的内存模型

    iOS通过逆向理解Block的内存模型

    自从对 iOS 的逆向初窥门径后,我也经常通过它来分析一些比较大的应用,参考一下这些应用中某些功能的实现。这个探索的过程乐趣多多,不仅能满足自己对未知的好奇心,还经常能发现一些意外的惊喜。这篇文章主要介绍了iOS通过逆向如何深入理解Block内存模型的相关资料。
    2017-01-01
  • iOS App使用GCD导致的卡顿现象及解决方法

    iOS App使用GCD导致的卡顿现象及解决方法

    这篇文章主要给大家介绍了关于iOS App使用GCD导致的卡顿现象及解决方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07

最新评论