随着项目的不断完善,需要向外推广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!)));
  }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐