颤振网页粘贴图像从剪贴板到<List>Uint8List



我的flutter web功能现在可以从磁盘选择文件到Uint8List。使用Uint8List,我可以通过小部件显示选定的图像。现在我正在给网络添加更多的功能。我的动机是在Twitter上复制/粘贴图片并发布。
下面是我尝试从内存中读取图像,但它返回null给我。

import 'dart:convert';
import 'dart:typed_data';
import 'package:pasteboard/pasteboard.dart';
import 'package:flutter/material.dart';
class Experiment extends StatefulWidget {
static const String routeName = '/experiment';
const Experiment({Key? key}) : super(key: key);
@override
State<Experiment> createState() => _ExperimentState();
}
class _ExperimentState extends State<Experiment> {
List<Uint8List>? _pickedBytes = <Uint8List>[];
void clickPaste() async {
var bytes = await Pasteboard.image;
print("xx");
print(bytes);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Row(
children: [
Text("Experiment"),
ElevatedButton(
onPressed: clickPaste,
child: Text("BTN"),
)
],
),
)
);
}
}

问题:
如何让flutter web从剪贴板读取图像到<List>Uint8List?

工作示例如下:但只支持Text

/// Data stored on the system clipboard.
///
/// The system clipboard can contain data of various media types. This data
/// structure currently supports only plain text data, in the [text] property.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class Experiment extends StatefulWidget {
static const String routeName = '/experiment';
const Experiment({Key? key}) : super(key: key);
@override
State<Experiment> createState() => _ExperimentState();
}
class _ExperimentState extends State<Experiment> {
Future<void> _clipboardToWidget() async {
var data = await Clipboard.getData('text/plain');
print(data?.text);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Row(
children: [
Text("Experiment"),
ElevatedButton(
onPressed: _clipboardToWidget,
child: Text("BBTN"),
)
],
),
)
);
}
}

相关内容

最新更新