随着项目的不断完善,需要向外推广app,微信分享就是一个很常用的方式。分享图片至微信,分享长图,分享截屏等
1. GlobalKey
GlobalKey
是 Flutter 框架提供的一个类,可以在 Widget 树中唯一标识一个 Widget。这个键可以用于在 Widget 树中查找特定的 Widget,并在必要时提供对它的引用。
final GlobalKey repaintKey = GlobalKey();
2. RepaintBoundary
在需要分享的Widget外层包裹一层RepaintBoundary。
final GlobalKey repaintKey = GlobalKey();
RepaintBoundary(
key: repaintKey,
child:Text('滚动区域') // 包含截图的所有内容
)
3.Fluwx
Fluwx 是一个专为Flutter框架设计的微信SDK插件,它使开发者能够轻松调用微信的原生API,包括分享功能(支持图像、文本、音乐等至会话、朋友圈和收藏)、微信支付、小程序启动、订阅消息以及通过微信打开应用或从微信链接启动应用等功能。引入配置略...
//分享图片到微信好友
shareImageToFriend() async {
final renderObject =
repaintKey.currentContext?.findRenderObject() as RenderRepaintBoundary;
// 将当前页面渲染为图片
final pixelRatio = MediaQuery.of(context).devicePixelRatio;
print(pixelRatio);
final image = await renderObject.toImage(pixelRatio: pixelRatio);
final byteData = await image.toByteData(format: ImageByteFormat.png);
final pngBytes = byteData?.buffer.asUint8List();
Fluwx fluwx = Fluwx();
fluwx.share(WeChatShareImageModel(WeChatImage.binary(pngBytes!)));
}