《Flutter入门疑难杂症》wechat_kit 获取网络图片调用微信分享

在用wechat kit分享的时候,遇到分享网页,但是图片需要使用自己服务端的图片链接,且图片可能大于32*1024的问题。
解决方案:
先下载图片,再进行压缩。贴代码:

  //加载网络图片
  static Future<Uint8List> compressWebImage(
      int targetSize, String imgUrl) async {
    Uint8List bytes;
    if (imgUrl != null) {
      try {
        HttpClient _httpClient = HttpClient();
        Uri resolved = Uri.base.resolve(imgUrl);
        HttpClientRequest request = await _httpClient.getUrl(resolved);
        HttpClientResponse response = await request.close();
        if (response.statusCode == HttpStatus.ok) {
          bytes = await MediaUtils.compressImgWithInt(
              30 * 1024, await consolidateHttpClientResponseBytes(response));
        }
      } catch (e) {
        bytes = null;
        print(e);
      }
    }
    return bytes;
  }
  //调整大小
 static Future<List<int>> compressImgWithInt(
      int targetSize, Uint8List bytes) async {
    List<int> resizeBytes = await FlutterImageCompress.compressWithList(bytes,
        minHeight: 200, minWidth: 200, quality: 40);
    if (Uint8List.fromList(resizeBytes).length > targetSize) {
      resizeBytes = await FlutterImageCompress.compressWithList(bytes,
          minHeight: 200, minWidth: 200, quality: 20);
    }
    return Uint8List.fromList(resizeBytes);
  }

主要是下载图片,并进行压缩到32*1024那部分的代码。
最后调用分享:

_wechat.shareWebpage(
        scene: scene,
        description: des,
        title: title,
        webpageUrl: targetUrl,
        thumbData: bytes);

分享集成的话自己去看下 wechat kit 吧。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值