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

如何在Delphi中直接向指定联系人发送WhatsApp消息?

直接向指定联系人发送WhatsApp消息(Delphi FireMonkey)

要跳过联系人选择步骤直接发送内容给指定联系人,核心是利用WhatsApp的URI Scheme指定目标号码,同时调整Intent的配置。以下是修改后的完整代码及关键说明:

修改后的代码

procedure TForm1.Button1Click(Sender: TObject);
var
  Intent : JIntent;
  Uri    : Jnet_Uri;
  Uris   : JArrayList;
  Path   : String;
  ContactNumber: string; // 指定目标联系人号码
  WhatsAppUri: Jnet_Uri;
begin
  // 1. 配置目标联系人号码(必须带国际区号,无空格/特殊字符)
  ContactNumber := '+5511999998888'; // 替换为实际联系人号码

  // 2. 保存图片到共享目录(保持原有逻辑)
  Path := System.IOUtils.TPath.GetSharedDocumentsPath + PathDelim;
  Image1.Bitmap.SaveToFile(Path+'1.png');
  Image2.Bitmap.SaveToFile(Path+'2.png');
  Image3.Bitmap.SaveToFile(Path+'3.png');

  // 3. 初始化Uri列表
  Uris := TJArrayList.Create;
  Uris.add(TJNet_Uri.JavaClass.parse(StringToJString(Path+'1.png')));
  Uris.add(TJNet_Uri.JavaClass.parse(StringToJString(Path+'2.png')));
  Uris.add(TJNet_Uri.JavaClass.parse(StringToJString(Path+'3.png')));

  // 4. 构造WhatsApp指定联系人的Intent
  WhatsAppUri := TJNet_Uri.JavaClass.parse(StringToJString('https://api.whatsapp.com/send?phone=' + ContactNumber));
  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_SEND_MULTIPLE); // 多文件发送用ACTION_SEND_MULTIPLE
  Intent.setPackage(StringToJString('com.whatsapp')); // 限定唤起WhatsApp
  Intent.setData(WhatsAppUri); // 指定目标联系人
  Intent.setType(StringToJString('image/png')); // 匹配文件类型
  Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString('Texto de teste')); // 附带文本
  Intent.putParcelableArrayListExtra(TJIntent.JavaClass.EXTRA_STREAM, Uris); // 传递图片Uri列表
  Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); // 授予文件读取权限

  // 5. 启动Intent
  TAndroidHelper.Activity.startActivity(Intent);
end;

关键注意事项

  • 号码格式要求:必须使用带国际区号的纯数字格式,比如中国号码为+86138xxxxxxx,不能包含空格、括号、横杠等特殊字符,否则无法识别联系人。
  • 多文件发送:发送多个图片时,必须使用ACTION_SEND_MULTIPLE而非ACTION_SEND,否则只能传递单个文件。
  • 文件权限:确保图片存储在共享目录(如GetSharedDocumentsPath),否则WhatsApp无法访问文件内容。
  • 包名限定:setPackage('com.whatsapp')确保系统只唤起WhatsApp,避免出现应用选择弹窗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 03:22:07