ios - iOS 13-如何打开另一个应用程序并将文件传递给它?
问题描述
我有一个绘图应用程序,由于一些重大的结构变化(主要是 PencilKit),我正在为版本 2 实现一个全新的应用程序。版本 1 创建的文档在版本 2 中将是只读的。
我已经在两个版本中实现了 UIActivityViewController,因此我可以成功地将文档从版本 1 移动到版本 2。不过,我想做的是提供另一种选择,即直接在版本 2 中打开版本 1 文档而不会弹出活动视图控制器向上。我正在通过文件 URL 共享,我看到了如何通过 URL 方案实现打开应用程序,但我不确定我是否可以通过 URL 方案打开并且 URL 既是自定义方案又是文件引用。
解决方案
我能够通过使用包含我的旧应用程序和新应用程序的 AppGroup 来实现这一点。这给了我一个共享区域来保存和检索文件。一旦我在 Xcode 中的应用程序组中注册了这两个应用程序,我就可以将文件写入共享目录,如下所示:
if let sharedURL = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.mycompany.appgroupname") { <read or write the files in here> }
然后我打开了一个包含文件路径的自定义 URL,或术语“ALL_FILES”,例如“myapp://private/where/apple/put/my/files/file1.ext”。或“myapp://ALL_FILES”,新应用程序将解析 URL 以决定做什么。
推荐阅读
- if-statement - “ROUND”计算不能低于 1.0
- javascript - 如何使用 Javascript 将计时器添加到轮播滑块
- continuous-integration - 竹子连续交货
- jquery - 切换事件忽略 if($(window).height() > 800){
- python - 使用 if 语句打印函数
- javascript - 检查日期是否在时间范围内
- wordpress - 如何删除我的 wordpress 网站顶部的空白
- c - 为什么我的 while() 语句陷入无限循环?
- css - 在小型设备中,如何使用 bootstrap4 将顶部 div 放在底部,底部 div 放在顶部?
- ffmpeg - 使用ffmpeg复制时如何排除eia_608字幕?