iOS_从其他App获取文件、分享文件给其他App

一、从其他App获取文件:官方文档

第一步:

让自己的App显示在系统的分享列表里:需要修改 *.plist 文件

Key为:CFBundleDocumentTypes

Value是:数组,可以包含n个字典,一般一个字典表示支持一种类型的文件

  字典: 

KeyValue

CFBundleTypeName

文件类型名称(自己起个名)

LSHandlerRank

包含OwnerDefaultAlternateNone四个可选值

LSItemContentTypes

数组类型,包含支持的文件类型:官方标识符文档(也可以自定义)

这里给一个我需要支持.bin文件的例子:

<key>CFBundleDocumentTypes</key>
<array>
  <dict>
    <key>CFBundleTypeName</key>
    <string>Binary</string>
    <key>LSHandlerRank</key>
    <string>Alternate</string>
    <key>LSItemContentTypes</key>
    <array>
      <string>public.data</string>
      <string>public.executable</string>
      <string>com.apple.mach-o-binary</string>
      <string>com.apple.pef-binary</string>
    </array>
  </dict>
</array>

然后就可以.bin文件的分享列表里看到自己的app了,如图:

第二步:获取文件

当从其他app分享文件过来时,会调用:

// MARK: - 其他app分享过来时回调
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
  print("openURLContexts:\(URLContexts)")
}

保存的位置:会在Document下新建一个Inbox文件夹,分享过来的文件都会存在这个文件夹下:

// 获取 Document/Inbox 里从其他app分享过来的文件
let manager = FileManager.default
let urlForDocument = manager.urls(for: .documentDirectory, in: .userDomainMask)
var documentUrl = urlForDocument[0] as URL
documentUrl.appendPathComponent("Inbox", isDirectory: true)
do {
  let contentsOfPath = try manager.contentsOfDirectory(at: documentUrl,
                                                       includingPropertiesForKeys: nil,
                                                       options: .skipsHiddenFiles)
  self.url = contentsOfPath.first // 保存,为了展示分享
  print("contentsOfPath:\n\(contentsOfPath)")
} catch {
  print("error:\(error)")
}

二、分享文件到其他App

// MARK: - 点击分享文件
@objc func clickShare() {
  if let url = self.url {
    documentController = UIDocumentInteractionController(url: url)
    documentController?.presentOptionsMenu(from: self.view.bounds, in: self.view, animated: true)
  }
}

以上~

参考1参考2

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1024app_ios_2.3.4是一款专为iOS设备设计的应用程序,其版本号为2.3.4。该应用程序在功能上提供了丰富的内容和服务,可以满足用户在不同方面的需求。 1024app_ios_2.3.4首先具备了强大的应用市场功能,用户可以通过该应用程序方便地浏览和搜索各种类型的应用,包括游戏、社交媒体、工具类等。用户可以根据自己的兴趣和需求下载和安装这些应用,并在手机上进行使用。 其次,1024app_ios_2.3.4还提供了个性化推荐功能,根据用户的使用习惯和喜好,推荐适合用户的应用程序。这样,用户可以更加高效地发现和使用他们感兴趣的应用,提高了用户体验。 另外,1024app_ios_2.3.4还支持应用的更新和升级。用户可以在应用程序中获得关于已安装应用的最新版本信息,并进行更新。这样,用户可以及时获得应用程序的最新功能和修复bug,提高了应用的稳定性和安全性。 最后,1024app_ios_2.3.4还具备了一些额外的功能,例如用户可以在应用中进行应用评分和评论,与其他用户交流和分享使用心得。此外,用户还可以通过该应用程序获取关于应用的详细信息,如应用的大小、开发者介绍等。 综上所述,1024app_ios_2.3.4是一款功能强大的iOS应用程序,用户可以在其中浏览和下载各种类型的应用,享受个性化推荐、应用更新和升级等服务。同时,用户还可以与其他用户互动交流,获取应用的详细信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫小言mo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值