Whatsapp 多行文本共享意图

What's App multiline text share intent

我尝试使用以下代码分享多行文本,但只显示最后一行。 val sharingIntent = Intent(Intent.ACTION_SEND) sharingIntent.setType("text/plain") sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Found this cool deal! Check it out.") sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, TITLE) sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "MRP : $PRICE") sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Deal Price : $DEAL_PRICE") startActivity(Intent.createChooser(sharingIntent, "Share using"))

只出现最后一行的原因是一个意图只能有一个键值。因此,每次调用 putExtra(EXTRA_TEXT,foo) 时,都会覆盖前一个。如果要发送多行,请将其作为带有“\n”字符的单个字符串发送。

至于发送 html- 你需要告诉它你要发送 html。你告诉它你正在发送纯文本。如果您要发送 html,请将 mime 类型更改为 text/html。 (注意:我不知道 whatsapp 是否支持 html,但这就是你发送 html 到任何支持它的应用程序的方式)。

当您调用 putExtra(key, value) 时,之前放在同一个 key 下的任何值都会被清除。尝试放置一个包含所有所需文本的字符串:

sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT,
    "Found this cool deal! Check it out.\n" +
    TITLE + "\n" +
    "MRP : $PRICE\n" +
    "DEAL PRICE : $DEAL_PRICE");

至于 HTML 内容,您需要向我们展示您使用的代码。但是,您可能不想使用 fromHtml();将 HTML 转换为样式文本,我怀疑这不是 WhatsApp 期望收到的。尝试只发送具有正确 MIME 类型的原始 HTML。

在 Kotlin 中,您可以对多行​​文本使用三引号,我不确定在 Java 中是否可以。

val moreStuff = "Text or Numbers or arrays"
 var myText = """
              line 1 of the text

              line 2 of the text
              $moreStuff
              """

它会按照您输入的方式对其进行格式化

var myText = """
    Found this cool deal! Check it out.
    $TITLE
     MRP : $PRICE
     DEAL PRICE : $DEAL_PRICE)"""