android – 如何在Intent ACTION_SEND中将超链接传递给Gmail?

可能是这个问题已经被问到或者是另一个问题的重复,但是我的搜索没有得到任何解决方案.
以下是我对我的问题所遵循的链接:
Link1 Link2

实际上,我的问题与使用ACTION_SEND在Android默认意图中共享HTML文本有关.当我尝试创建具有不同值的URL的超链接时,它显示一个简单的值文本.这不是可点击的链接.

我是这样做的:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/html");
String link = "https://www.android.com/";
String linkValue = "Click Me";
String body1 = "<a href=\"" + link + "\">" + link+ "</a>";//I don't want this
String body2 = "<a href=\"" + link + "\">" + linkValue + "</a>";//This is not working
intent.putExtra(Intent.EXTRA_TEXT,Html.fromHtml(body2));
startActivity(Intent.createChooser(intent,"Share With"));

对于body2:
当我使用Gmail共享文本时,电子邮件中的超链接文本将作为普通文本.只需“点击我”.我也在桌面浏览器上查了一下.但它也是一样的.我在Inspect Element中检查了这个文本(你可以获得浏览器页面的Inspect Element,如:右键单击浏览器页面>>在弹出窗口中单击底部检查或参考Inspect Element)格式,发现没有超链接文本的标签.

对于body1:
它正在工作,我把URL作为电子邮件中的超链接,但我得到了URL作为超链接我不想在电子邮件中显示相同的URL,而不是应该有一些提示值作为body2格式.这种格式可以通过身体中的直接URL共享来实现,无需标记.

所以最后我的搜索是,Android中是否有任何方式可以使用不同的提示值而不是链接(URL)来共享超链接文本.

解决方法

我建议你使用一个字符串资源而不是一个Java字符串,这通常是一种很好的做法,这样你就不必逃避“.或者使用HTML数据,你必须将它包装在CDATA中.

XML:

<string name="readyandroid"><![CDATA[<a href="https://readyandroid.wordpress.com/">readyandroid</a>]]></string>

在Java中,将body2替换为:

String body2 = getString(R.string.readyandroid);

然后尝试将其传递给意图并通过电子邮件发送,它应该是您想要的正确超链接.

相关文章

文章浏览阅读8.8k次,点赞9次,收藏20次。本文操作环境:win1...
文章浏览阅读1.2w次,点赞15次,收藏69次。实现目的:由main...
文章浏览阅读3.8w次。前言:最近在找Android上的全局代理软件...
文章浏览阅读2.5w次,点赞17次,收藏6次。创建项目后,运行项...
文章浏览阅读8.9w次,点赞4次,收藏43次。前言:在Android上...
文章浏览阅读1.1w次,点赞4次,收藏17次。Android Studio提供...