Android应用发送WhatsApp消息如何实现分段等格式化排版
Android 端发送WhatsApp消息段落排版实现方案
你已经掌握的*包裹文本实现粗体的逻辑是对的,WhatsApp的文本格式化标记和原生换行符完全兼容,不需要引入额外依赖:
- 同段落软换行:在消息字符串中插入单个
\n,效果和输入时敲一次回车一致,行间距较窄 - 段落硬分隔(段落间空一行):在消息字符串中插入连续两个换行符
\n\n,即可实现两个段落间留空白的分隔效果,和手动敲两次回车的排版效果完全一致
WhatsApp支持的常用格式化标记和换行符不会冲突,只要保证标记成对闭合即可:
- 粗体:
*待加粗文本* - 斜体:
_待倾斜文本_ - 删除线:
~待加删除线文本~ - 行内等宽代码:
`等宽文本`
以下是可直接复用的实现代码(Kotlin):
// 构造符合排版要求的消息内容 val formattedMessage = buildString { // 第一段:粗体标题,标题后空一行和正文分隔 append("*活动提醒*\n\n") // 第二段:正文开头,单换行拆分列表项 append("您报名的线下活动即将开始:\n") append("• 活动时间:2024年6月1日 14:00\n") append("• 活动地点:市科技馆3号展厅\n") append("• 签到凭证:报名手机号后四位\n\n") // 第三段:注意事项,和上方列表空一行分隔 append("请提前15分钟到场签到,现场可领取活动周边一份。") } // 唤起WhatsApp发送消息的Intent逻辑 val whatsappSendIntent = Intent(Intent.ACTION_SEND).apply { type = "text/plain" setPackage("com.whatsapp") // 直接跳转WhatsApp,跳过应用选择弹窗 putExtra(Intent.EXTRA_TEXT, formattedMessage) } // 检查设备安装WhatsApp后再跳转,避免崩溃 if (whatsappSendIntent.resolveActivity(packageManager) != null) { startActivity(whatsappSendIntent) }
踩坑提示:不要在格式化标记(比如包裹粗体的
*)和相邻的换行符之间插入多余的全角空格,否则会导致格式标记无法被识别,直接显示成原始的*符号。如果是对接WhatsApp Business API发消息,段落分隔规则和客户端跳转完全一致,直接在消息字段中传入带\n\n的字符串即可生效。
内容的提问来源于stack exchange,提问作者Jayant Kadge
相关产品推荐
相关产品推荐

