返回

DragAndDropKit-iOS15:神奇一行代码,跨应用拖拽传数据

IOS

曾经,大家印象中苹果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非常适合跨应用间的数据传输场景,而且只用一行代码就能实现,非常方便。