flutter 微信QQ好友朋友圈分享

708 阅读1分钟

直接展示代码 1、微信分享 1.1、安装 fluwx插件,去pub.dev下载最新的, 点击去 1.2、初始化fluwx, 在main.dart页面中的main方法执行一下代码

Fluwx fluwx = Fluwx();
// 注册微信API
fluwx.registerApi(
    appId: Config.wxAppId, // 你的微信AppID
    universalLink: Config.universalLink // iOS必填
   );

1.3 分享代码

bool isWeChatInstalled = await fluwx.isWeChatInstalled; // 一定到判断是否安装微信

// 分享到微信会话
void shareToWeChat(String type) async {
  if (!isWeChatInstalled) {
    Fluttertoast.showToast(
      msg: "请安装微信客户端后再试",
      toastLength: Toast.LENGTH_SHORT,
      gravity: ToastGravity.BOTTOM,
      timeInSecForIosWeb: 1,
      backgroundColor: Colors.white,
      textColor: Colors.black,
      fontSize: 14.0,
    );
    return;
  }
  try {
    // 加载缩略图 二进制数据
    final response =   await http.get(Uri.parse('网络图片地址'));
    Uint8List thumbnailData = response.bodyBytes;
    WeChatScene scene = WeChatScene.session;
    if (type == 'session') {
    // 好友
      scene = WeChatScene.session;
    }
    if (type == 'timeline') {
    //朋友圈
      scene = WeChatScene.timeline;
    }
    String url = 'https://oceantech2023.cn/invite?code=$invitationCode';
    final result = await fluwx.share(
      WeChatShareWebPageModel(
        url,  // 要分享的网页链接(String)不是必填
        title: '注册获7天免费会员!', // 分享标题 不是必填
        description:  """🎉 好消息!我为你带来了独享的福利!🎉 !""", // 描述说明 不是必填
        thumbData: thumbnailData,  //分享时的小图标(Uint8List 类型的图片二进制数据,推荐 <32KB) 不是必填
        scene: scene,// 分享的目标场景(微信好友/朋友圈等) 
      ),
    );
    print('分享结果: $result');
  } catch (e) {
    logger.e("分享失败: $e");
    Fluttertoast.showToast(
      msg: "分享失败",
      toastLength: Toast.LENGTH_SHORT,
      gravity: ToastGravity.BOTTOM,
      timeInSecForIosWeb: 1,
      backgroundColor: Colors.black,
      textColor: Colors.white,
      fontSize: 14.0,
    );
  }
}

2、QQ分享 2.1、安装tencent_kit 插件,去pub.dev下载最新的, 点击去 2.2、初始化tencent_kit, 在main.dart页面中的main方法执行一下代码

  WidgetsFlutterBinding.ensureInitialized();
  await Tencent.instance.registerApp(appId: '你的QQ AppID');

2.3、分享代码

void shareToQQ(String type) async {
TencentScene scene = TencentScene.kScene_QQ;
final bool isInstalled = await Tencent.instance.isQQInstalled();
if (!isInstalled) {
  Fluttertoast.showToast(
    msg: "请安装QQ客户端后再试",
    toastLength: Toast.LENGTH_SHORT,
    gravity: ToastGravity.BOTTOM,
    timeInSecForIosWeb: 1,
    backgroundColor: Colors.white,
    textColor: Colors.black,
    fontSize: 14.0,
  );
  return;
}
if (type == 'kScene_QQ') {
    // 好友
      scene = WeChatScene.kScene_QQ;
  }
  if (type == 'kScene_QZone') {
    //朋友圈
      scene = WeChatScene.kScene_QZone;
  }
final result = await Tencent.instance.shareWebpage(
  scene: scene, // 分享给QQ好友
  title: '注册得7天超级会员!',    // ✅ 必填
  summary: '填写邀请码立即获得会员体验,限时福利速来!', // ✅ 必填
  targetUrl: 'https://yourdomain.com/invite?code=XXX', // ✅ 必填
  imageUri: Uri.parse('https://yourcdn.com/cover.jpg'), // ✅ 可选:缩略图
);