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

在Flutter中如何通过号码列表创建并打开WhatsApp广播组?

Flutter实现WhatsApp广播组创建与打开

核心思路

WhatsApp官方没有提供直接创建广播组的Deep Link,但可以通过唤起多收件人消息发送界面,发送消息后手动保存为广播组。以下是具体实现步骤:

1. 添加依赖

需要用到url_launcher包唤起外部应用,在pubspec.yaml中添加依赖:

dependencies:
  url_launcher: ^6.2.5 # 可替换为最新版本

2. 号码格式处理

WhatsApp要求号码为无符号的国际格式(如中国号码以86开头),先统一处理号码格式:

// 清理并格式化号码为WhatsApp兼容格式
String formatPhoneNumber(String number) {
  // 移除所有非数字字符
  final cleanedNumber = number.replaceAll(RegExp(r'\D'), '');
  // 根据你的地区修改国家码,示例为中国地区(86)
  if (!cleanedNumber.startsWith('86')) {
    return '86$cleanedNumber';
  }
  return cleanedNumber;
}

3. 实现唤起方法

编写方法生成WhatsApp链接并打开:

import 'package:url_launcher/url_launcher.dart';

Future<void> openWhatsAppBroadcast(List<String> recipients, String message) async {
  // 格式化所有收件人号码
  final formattedNumbers = recipients.map(formatPhoneNumber).toList();
  
  // 构建多号码参数
  final phoneParams = formattedNumbers.map((num) => 'phone=$num').join('&');
  // 编码消息内容避免特殊字符错误
  final encodedMessage = Uri.encodeComponent(message);
  
  final whatsappUrl = 'whatsapp://send?$phoneParams&text=$encodedMessage';
  final uri = Uri.parse(whatsappUrl);

  if (await canLaunchUrl(uri)) {
    await launchUrl(uri, mode: LaunchMode.externalApplication);
  } else {
    // 可替换为自定义错误提示逻辑
    throw '无法打开WhatsApp,请确认已安装应用';
  }
}

4. Android端额外配置

为让应用能识别WhatsApp,在android/app/src/main/AndroidManifest.xml中添加查询配置:

<queries>
  <package android:name="com.whatsapp" />
  <package android:name="com.whatsapp.w4b" /> <!-- 适配WhatsApp Business -->
</queries>

使用示例

直接调用方法即可:

List<String> recipients = ['0185889898', '0125555555','012552335555'];
String message = 'Hello this is a broadcast message';
await openWhatsAppBroadcast(recipients, message);

注意事项

  • 必须确保号码是完整的国际格式,否则WhatsApp无法识别对应联系人。
  • 唤起后会进入多收件人消息发送界面,发送消息后可通过右上角菜单选择「保存为广播组」完成创建。
  • 需处理用户未安装WhatsApp的异常情况,建议添加友好提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:48:20