rich_clipboard

CI Pub Version

A Flutter plugin providing access to additional data types in the system clipboard.

Platform Support

macOS Windows Linux Web Android iOS
*

Unsupported Platforms

On unsupported platforms this plugin will provide plain text only support rather than failing. This is done by transparently calling methods on Flutter's built-in Clipboard where appropriate, or returning mock empty values where no analogue exists. In these cases some data may be silently discarded, such as when attempting to write data types other than plain text to the clipboard.

Firefox

While "web" is currently a supported platform, support for Firefox is currently not possible due to its incomplete implementation of the Clipboard API. Because of this, the plugin will degrade to plain text only mode in that browser. Unfortunately, even that does not work in all cases as Flutter's built-in clipboard support is also broken due to additional restrictions placed on the Clipboard API by Firefox. You can find the relevant Flutter bug here.

Usage

You can use static methods on the RichClipboard class to access data in the system clipboard. The API is similar to that provided by Flutter's built-in Clipboard class.

import 'package:rich_clipboard/rich_clipboard.dart';
...
final clipboardData = await RichClipboard.getData();
if (clipboardData.html != null) {
  // Do something with HTML
} else if (clipboardData.text != null) {
  // Do something with plain text
}
...

final plainText = 'Hello there';
final html = '<html><body><h1>$plainText</h1></body></html>';
await RichClipboard.setData(RichClipboardData({
  text: plainText,
  html: html,
}));

Libraries

rich_clipboard