---
title: BEDragInteraction
framework: browserenginekit
role: symbol
role_heading: Class
path: browserenginekit/bedraginteraction
---

# BEDragInteraction

An interaction that enables your app to asynchronously provide drag items.

## Declaration

```swift
@MainActor class BEDragInteraction
```

## Overview

Overview This class is a subclass of UIDragInteraction that adds asynchronous support for drag interaction. If you don’t need to interact with drag operations asynchronously, use UIDragInteraction instead. To support UI element drag interaction in your browser app asynchronously, create an instance of this class and attach it to the source view. Set the isntance’s delegate to an object that conforms to BEDragInteractionDelegate, and implement prepartions in the delegate for the UIDragSession. The system requests drag items from your delegate by calling the delegate’s dragInteraction(_:itemsForBeginning:) method.

## Topics

### Creating a drag interaction

- [init(delegate:)](browserenginekit/bedraginteraction/init(delegate:).md)

### Handling drag gestures

- [delegate](browserenginekit/bedraginteraction/delegate.md)
- [BEDragInteractionDelegate](browserenginekit/bedraginteractiondelegate.md)

## Relationships

### Inherits From

- [UIDragInteraction](uikit/uidraginteraction.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [UIInteraction](uikit/uiinteraction.md)

## See Also

### Drag interaction

- [BEDragInteractionDelegate](browserenginekit/bedraginteractiondelegate.md)
