You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中能否实现向含指定号码的新建WhatsApp群组发消息?

实现WhatsApp创建包含两个联系人的新群组

可行,但需要针对Android和iOS平台分别处理,且目标号码必须是用户设备上已保存的联系人(这是WhatsApp的官方限制,无法直接添加未保存的号码到新群组)。

以下是修改后的Flutter代码实现:

import 'package:url_launcher/url_launcher.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'package:easyloading/easyloading.dart';

createWhatsAppGroup() async {
  // 目标联系人号码(需已保存到设备通讯录)
  var contact1 = "+972528990525";
  var contact2 = "+972123456789";

  Uri launchUri;

  if (kIsWeb) {
    // Web平台暂不支持直接创建群组,可提示用户手动操作
    EasyLoading.showError('Web平台暂不支持此功能');
    return;
  }

  if (defaultTargetPlatform == TargetPlatform.iOS) {
    // iOS平台:使用wa.me的群组创建链接,需将号码转为不带+的格式
    String formattedContact1 = contact1.replaceAll('+', '');
    String formattedContact2 = contact2.replaceAll('+', '');
    launchUri = Uri.parse("https://wa.me/?text=Hi%2C%20let's%20chat&group=0&users=$formattedContact1,$formattedContact2");
  } else {
    // Android平台:使用WhatsApp的jid参数,格式为[号码]@s.whatsapp.net,多个用逗号分隔
    String jid1 = "${contact1.replaceAll('+', '')}@s.whatsapp.net";
    String jid2 = "${contact2.replaceAll('+', '')}@s.whatsapp.net";
    launchUri = Uri.parse("whatsapp://chat?jid=$jid1,$jid2&text=Hi%2C%20let's%20chat");
  }

  try {
    await launchUrl(
      launchUri,
      mode: LaunchMode.externalApplication,
    );
  } on Exception {
    EasyLoading.showError('WhatsApp未安装或版本不支持');
  }
}

注意事项:

  • 所有目标号码必须是用户设备通讯录中已保存的联系人,否则WhatsApp无法识别并添加到群组。
  • iOS平台的group=0参数表示创建新群组,users参数传入逗号分隔的不带+号的号码。
  • Android平台需要将号码转为[号码]@s.whatsapp.net的格式,多个jid用逗号分隔。
  • 文本内容需要做URL编码(示例中用%2C代替逗号,%20代替空格),避免解析错误。

内容的提问来源于stack exchange,提问作者RJB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 14:17:19