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

如何从其他应用跳转WhatsApp时发送PDF/图片文件而非文本

WhatsApp跳转发送PDF/图片实现方案

核心限制说明

你当前使用的whatsapp://send?text=自定义跳转协议,仅支持传递URL编码后的纯文本内容,直接在text参数里填ABC.pdf、image.png这类文件名,只会把文件名作为普通字符串发送,完全不会识别为待发送的文件。

分场景实现方式

场景1:H5网页通过a标签跳转分享(你当前的使用场景)

这种场景下无法直接发送本地存储的文件,必须按以下规则调整:

  • 先将要分享的PDF、图片上传到公网可直接访问的服务器,获取文件的HTTPS直链(HTTP链接会被WhatsApp拦截,链接不能有登录校验、权限校验,否则WhatsApp无法抓取资源)
  • 放弃自定义协议,改用WhatsApp官方提供的web分享接口,将文件直链编码后放到text参数中,WhatsApp会自动识别链接对应的媒体/文件资源,生成带预览的待发送附件,代码示例:
<!-- 分享PDF -->
<a href="https://api.whatsapp.com/send?text=%E6%88%91%E5%88%86%E4%BA%AB%E7%9A%84PDF%E6%96%87%E4%BB%B6%0Ahttps%3A%2F%2Fyour-domain.com%2FABC.pdf" target="_blank">分享PDF到WhatsApp</a>

<!-- 分享图片 -->
<a href="https://api.whatsapp.com/send?text=%E6%88%91%E5%88%86%E4%BA%AB%E7%9A%84%E5%9B%BE%E7%89%87%0Ahttps%3A%2F%2Fyour-domain.com%2Fimage.png" target="_blank">分享图片到WhatsApp</a>

代码里的%0A是URL编码后的换行符,用来把说明文字和文件链接分开,你可以替换成自己需要的提示文本。

场景2:原生App内调起WhatsApp发送本地文件

如果是你自己开发的Android/iOS原生应用,要发送App本地存储的PDF/图片,不能靠简单的URL scheme跳转,需要调用系统原生分享能力传文件:

  • Android端通过Intent实现,核心代码如下:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
// 发PDF填application/pdf,发png图片填image/png,按实际文件类型设置MIME
sendIntent.setType("application/pdf");
sendIntent.setPackage("com.whatsapp");
// 传入本地文件的content格式Uri,注意需要给WhatsApp授予该文件的临时访问权限
sendIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
startActivity(sendIntent);
  • iOS端通过UIActivityViewController传入待发送的图片/PDF的NSData对象,调起系统分享面板后选择WhatsApp即可完成发送。

注意事项

不存在直接通过whatsapp://协议传本地文件名、本地文件路径就能发送文件的方案。出于安全限制,WhatsApp不会读取跳转参数里传入的本地路径,所有这类写法最终都只会发送纯文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:18:21