如何通过文本意图分享文本链接?

6

我希望分享一个文本,点击后用户会通过Android共享意图导航到一个URL。

例如:

"访问Google获取更多信息。"

在上面的文本中,当用户点击Google时,将被重定向到google.com。我需要实现这样的功能,而不是向用户显示完整的URL。我尝试过使用href制作HTML链接,但不起作用。

那么,我应该如何实现呢?

3个回答

11

您必须将类型设置为纯文本,即:

intent.setType("text/plain");

可以这样将类型设置为HTML:

intent.setType("text/html");

那么,您可以使用这个来共享HTML文本:

并且它将会运行。

String textToShare = "Visit <a href=\"http://www.google.com\">google</a> for more info.";
Intent intent = new Intent(android.content.Intent.ACTION_SEND);

intent.setType("text/html");
intent.putExtra(Intent.EXTRA_SUBJECT, "sample");
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(textToShare));

startActivity(Intent.createChooser(intent, "Share"));

输出

这是 Gmail 应用的截图:

来自 Gmail 应用的截图


它不显示WhatsApp或FB Messenger以进行分享。 :/ - Hari Krishnan
所以对于这样的应用程序,您无法做到这一点,但是您可以针对像Gmail这样的电子邮件应用程序实现此操作。 - Ashish Ranjan
请检查更新后的答案中的截图,是否是您想要的内容? - Ashish Ranjan
是的,但我需要在所有应用程序上使用,例如WhatsApp、FB Messenger等。 - Hari Krishnan
是的,就像我所说的那样,对于这样的应用程序,你无法做到这一点。你将不得不共享纯文本,即使用 text/plain MIME 类型才能在这些应用程序中共享文本,并且它不会像这样格式化。 - Ashish Ranjan
最新的Android版本似乎无法正常工作。 - user924

2

访问Google

使用 href 标签并结合 Html.fromHtml(); 方法设置文本,然后将其设置到 TextView 中。


你试过我说的了吗? - JAAD
是的。它与上面的答案相同。它无法通过WhatsApp或FB Messenger共享内容。 - Hari Krishnan

-1

尝试这样做:

使用文本视图选择和长按监听器调用共享意图。否则,您可以使用Android Spannable TextView。

请参考此链接以获取带有Google搜索的可扩展文本视图:http://androidcocktail.blogspot.in/2014/03/android-spannablestring-example.html

Uri uri = Uri.parse("http://www.google.com/#q=selected word here");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

1
这不是共享意图。我需要分享文本,而不是直接在浏览器中打开它。 - Hari Krishnan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接