返回
DragAndDropKit-iOS15:神奇一行代码,跨应用拖拽传数据
IOS
2023-09-03 04:59:49
曾经,大家印象中苹果IOS是一个“牢不可破”的生态系统,许多其他系统常见的功能在IOS中都找不到,比如屏幕分屏,或者各种应用间的信息传输。随着苹果逐渐放宽应用权限,现在我们已经能用IOS进行一些以前只能在Android上进行的操作了。
DragAndDropKit,是一个利用苹果“权限放宽”的小工具,能让我们用一行代码轻松实现跨应用间的数据拖拽传输。
支持平台与版本
- 系统:iOS 15.0 及以上
- Swift:5.5 及以上
- Xcode:13.0 及以上
如何使用
一、安装
1. Cocoapods
pod 'DragAndDropKit', '~> 1.0.0'
2. Carthage
github "rickanli/DragAndDropKit" ~> 1.0.0
3. 手动安装
- 将 DragAndDropKit 文件夹拖拽到你的项目中。
- 确保已经启用了 target 的文件导入功能(
Enable Modules
选项)。
二、使用
1. 拖拽数据
// 初始化拖拽管理对象
let dragAndDropManager = DragAndDropManager()
// 订阅数据接收方法
dragAndDropManager.didDropObjectsHandler = { (objects) in
// 解析对象数据,填充到 UI
for object in objects {
if let itemProvider = object.itemProvider, itemProvider.hasItemConformingToTypeIdentifier("public.data") {
itemProvider.loadDataRepresentation(forTypeIdentifier: "public.data") { (data, error) in
if let data = data, let string = String(data: data, encoding: .utf8) {
// UI 更新操作
print(string)
}
}
}
}
}
2. 接收数据
// 初始化数据发送对象
let dragAndDropTransfer = DragAndDropTransfer(context: viewContext)
// 创建数据传输对象
let dragItem = NSItemProvider(item: nil, typeIdentifier: "public.data")
// 开始数据传输
dragAndDropTransfer.begin()
dragItem.loadDataRepresentation(forTypeIdentifier: "public.data") { (data, error) in
if let data = data {
dragAndDropTransfer.transferObject(data: data)
}
}
dragAndDropTransfer.end()
总结
DragAndDropKit-iOS15非常适合跨应用间的数据传输场景,而且只用一行代码就能实现,非常方便。