fluwx是基于微信分享的一个组件
可以支持分享图片,小程序,文本,支付,以及登录等
一、首先要在yaml中引入fluwx
fluwx: ^版本号
二、在使用正式的分享之前,需要先调用下init
initFluwx() async {
await fluwx.registerWxApi(
appId: "wx83c491ea494cacb1",
doOnAndroid: true,
doOnIOS: false,
);
var result = await fluwx.isWeChatInstalled();
print("is installed $result");
}
clean -d -f
这里需要注意的是,appId需要和微信后台设置的一致
三、分享图片
首先要在使用的页面做引入:
import 'package:fluwx/fluwx.dart' as fluwx;
首先要在使用的页面做引入:
import 'package:fluwx/fluwx.dart' as fluwx;
1、分享本地图片
fluwx.shareToWeChat(
WeChatShareImageModelt(
image: 'assets://images...png',
transaction: 'test',
scene: scene,
description: "image"
)
);
2、分享网络图片
fluwx.shareToWeChat(
WeChatShareImageModelt(
WeChatImage.network(“https://c-ssl.duitang.com/uploads/item/202004/15/20200415174537_ZzvUZ.thumb.1000_0.jpeg")
thumbnail:"assets://images/logo.png"
)
);
3、分享数据图片
fluwx.shareToWeChat(
fluwx.WeChatShareImageModel.fromUint8List(
transaction: 'test’,
imageData: pngBytes, //uint8List的格式的图片信息
scene: fluwx.WeChatScene.TIMELINE, //
description: 'image',
)
);
4、从文件图片
final tempDir = await getTemporaryDiretory();
String path = ‘${tempDir.path}/image.jpg’;final file = await File(path).create(); file.writeAsBytesSync(pngBytes); //将二进制文件写入文件地址内fluwx.shareToWeChat(
fluwx.WeChatShareImageModel.fromFile(
file, //flie文件 transaction: 'test’,
imageData: pngBytes, //uint8List的格式的图片信息
scene: fluwx.WeChatScene.TIMELINE, //分享到位置
description: 'image',
)
);
二、分享小程序
var model = fluwx.WeChatShareMiniProgramModel(
webPageUrl: “----",
miniProgramType: fluwx.WXMiniProgramType.PREVIEW,
userName: “----", //小程序的id
title: “---",
path: “----",
description: "description",
thumbnail: "https://c-ssl.duitang.com/uploads/item/202004/15/20200415174537_ZzvUZ.thumb.1000_0.jpeg" //缩略图
);
fluwx.shareToWeChat(model); //这一步是分享
下面是微信的安卓sdk,
可以对照发现fluwx的userName取得实际是小程序的id
WXMiniProgramObject miniProgramObj = new WXMiniProgramObject();
miniProgramObj.webpageUrl = "http://www.qq.com"; // 兼容低版本的网页链接
miniProgramObj.miniprogramType = WXMiniProgramObject.MINIPTOGRAM_TYPE_RELEASE;// 正式版:0,测试版:1,体验版:2
miniProgramObj.userName = "gh_d43f693ca31f"; // 小程序原始id
miniProgramObj.path = "/pages/media"; //小程序页面路径;对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"
WXMediaMessage msg = new WXMediaMessage(miniProgramObj);
msg.title = "小程序消息Title"; // 小程序消息title
msg.description = "小程序消息Desc"; // 小程序消息desc
msg.thumbData = getThumb(); // 小程序消息封面图片,小于128k
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("miniProgram");
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession; // 目前只支持会话
api.sendReq(req);