iOS 分享数据到其它app(open in other app)

限于iOS的沙盒机制(sandbox),不能跨app访问数据。所以想分享App A的数据到App B中使用,需要借助Open In来操作。
本文介绍如何实现通过“Open In”方式来分享数据到其它App当中,以及在实现时,踩到的坑(前车之鉴)。

1. 涉及的类

Cocoa框架为我们提供了类UIDocumentInteractionController来实现Open In分享。

2. 实现步骤

简单说来,我们需要准备数据,弹出Open In窗口,调用UIDocumentInteractionController分享数据。
2.1 准备数据
推荐将要分享的数据拷贝到一个目录文件夹做备用。当然如果将分享的数据体积较大,也可省略这一步,但必须保证数据在分享过程中可用;

NSString *fromPath = @"demoFromPath";
NSString *toPath = @"demoToPath";
NSError *err = nil;
NSFileManager*fileManager =[NSFileManager defaultManager];
[fileManager copyItemAtPath:fromPath toPath:toPath error:&err];

另外还需初始化一个分享类实例对象,并声明类遵循UIDocumentInteractionControllerDelegate协议。
首先声明一个UIDocumentInteractionController属性实例:

@property (nonatomic, strong) UIDocumentInteractionController *documentViewController;
@synthesize documentController;

在分享前

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园助手iOS端项目框架.     ├── HutHelper     │   ├── 3rd:因为各种原因没有用Pods管理的第三方库     │   ├── Utils:一些工具类等     │   ├── Request:网络请求     │   ├── Models:数据模型     │   ├── View:界面,xib或者storyboard之类的文件     │   ├── Supporting Files:一些支持文件     │   └── Controllers     │       ├── Main:主界面     │       ├── Login:登录界面     │       ├── Class:课程表     │       ├── Score:考试成绩     │       ├── Exam:考试计划查询     │       ├── User:用户界面     │       ├── FeedBack:反馈界面     │       ├── Power:寝室电费查询     │       ├── Set:用户设置界面     │       ├── Lost:失物招领界面     │       ├── Day:校历界面     │       ├── HomeWork:网上作业界面     │       ├── Hand:二手市场界面     │       ├── Library:图书馆界面     │       ├── Other:其他     └── Pods:项目使用了[CocoaPods](http://code4app.com/article/cocoapods-install-usage)这个类库管理工具     └── json:请求的示例数据请注意,因为使用了Pods,所以请下载完项目后先运行pod install注意事项考虑到在校用户信息的安全性,App的接口地址全部换成了镜像接口,与线上版本不同除此之外,一切和上线版本代码全部一致同时因为镜像接口的数据是固定的,所以测试时,登录界面,无论输入什么,点登录就可以课程数据,考试数据,用户数据,课表数据,说说数据,二手数据这些也都是固定的请求的数据可以在json文件夹中查看如果要进行二次开发,可以直接把请求的地址改成自己后端的地址,然后把接受的数据改一下即可.上架情况功能介绍登录界面登录界面采用简洁的方式展示。 用户输入学号和密码后,将通过JSON连接网络,得到Msg信息 如果成功--->存储Json至NSUserDefault 如果失败--->返回Msg提示信息主界面主界面是直接用xib做的,图片直接使用UI给的图片,另外的话有很多数据是在这个界面初始化的viewDidLoad()方法中,需要计算APP打开的此时的周数,并且通过NSUserDefaults类将其数据存储到plist文件中判断是否为第一次登陆,是的话跳转到登陆界面判断设置中是否设置自动打开课程表,是的话跳转到课程表判断用户信息的标签是否上传初始化抽屉界面...成绩查询这里调用了UUCharView - 成绩曲线图标开源项目,展现了用户成绩数据,首先第一次打开这个界面会读取用户成绩数据,并缓存,后面几次打开时会直接读取缓存数据。如果需要刷新的话可以点刷新按钮。点右上角的按钮可以查询所有课程的成绩数据,同时也可以折叠数据。课程表这里使用了GWPCourseListView - 课程表界面开源项目,做了一些调整,并且修复了一些bug,开发者已经接受了我的pull。 同时自己集成了LGPlusButtonsView - 按钮控件开源项目的按钮控件,使课程表数据可以上下周的调整。另外加入了实验课程表,可以单独显示,也可以在设置里面设置成一起显示考试计划考试计划中将显示教务处正在计划和已经确定的考试 用的自定义tableview做的,很简单的绘制一个cell,然后将Json的数据与之交互电费查询简单的调用接口查询,没什么技术含量校园说说这个部分最大的问题就是适配的问题,有的图片多,有的文字多,怎么决定这个长度呢 所以我把每条说说分为四个部分,从上往下依次是 用户信息和文字/图片部分/评论数目部分/评论部分 这样首先根据文字的长度,分配第一个cell也就是文字的高度 然后根据图片的部分,分配第二个cell也就是图片的高度二手市场每个cell显示两个商品,很简单的做法图书馆/校园说说/二手市场/网上作业这两个部分因为没有接口,所以直接用web端做的项目使用的开源项目LeftSlide - 主界面框架MBProgressHUD - 等待框动画GWPCourseListView - 课程表界面LGPlusButtonsView - 按钮控件UUCharView - 成绩曲线图标SKSTableView - 成绩列表[TZImagePickerController - 照片选择器][SDWebImage - 异步多图加载][MJRefresh - 上拉下拉刷新][YYModel - Json转Model][AFNetworking - 请求异步加载][UMengUShare - 友盟分享][ASIHTTPRequest - 照片同步上传]最后这是本人刚进大二,在湖南工业大学实验室写的一款App,目的主要是为湖南工业大学的学生提供一些便利,同时也是湖南省省级项目,App中有很多不足的地方,代码的可读性也不是很好,甚至于最开始的版本,网络请求都是同步请求,没有加载框,很容易卡死。但是不管如何,我都在完善。 这是开源的第一个版本,在后续每当上线版本有大的更新后,我都会同步发布在这里 其目的是,如果有其他学校的同学也需要开发一个服务于自己母校的iOS App,可以从这得到一定的参考 如果有任何问题也可以在issues留言LicenseApache Licene 2.0 标签:HutHelper

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值