与可点击的链接的Android份额意图(Android share Intent with clic

2019-10-23 10:24发布

我已经看过了网络上,但还没有找到适合我的特定需求的解决方案。 我在寻找一种方式来分享一杯羹的意图,提供了一个可点击的链接,喜欢的东西的信息:

看看这个新闻文章

通过吉米的新闻应用程序

我已经成功地建立了在我的Android应用程序共享的意图,看起来像这样:

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject Text");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Check out this news article" + "\n\n" + getResources().getText(R.string.shared_via));
shareIntent.setType("text/plain");
startActivity(Intent.createChooser(shareIntent, "Share this article with..."));

我的字符串资源如下所示:

<string name="shared_via">via <a ref="http://google.com">Jimmy's News App</a></string>

共享功能,因为它应该然而,在电子邮件,Twitter等分享时,链接将被忽略,鸣叫只显示纯文本是这样的:

我试图玩弄的MIME类型,但仍没有雪茄。 反正是有共享的时候能得到“吉米的新闻应用程序”点击? 我比感激更多的任何和所有帮助和或提示。

提前致谢!

Answer 1:

首先,我也没有想到你的项目甚至建立,作为字符串资源不支持任意的HTML标签。 唯一记载的有<b> <i><u>

其次,即使它支持任意的HTML标签,你将它转换回从SpannedgetText()转换成普通字符串,这将删除该格式。

为了克服这两个问题,要么移到该字符串转换成Java(毕竟,它不是像你有国际化准备,在你的代码片段的其他地方硬编码英语),或包裹在一个字符串内容CDATA (同时还修复您的破碎的HTML,以使用href<a>属性):

<string name="shared_via"><![CDATA[via <a href="http://google.com">Jimmy's News App</a>]]></string>

在这一点上,如果你看看你的连接字符串,它应该看起来像准HTML源代码:

Check out this news article

via <a href="http://google.com">Jimmy's News App</a>

接下来,当你发送过HTML,你是它声明为纯文本。 因此,许多应用程序将其当作纯文本,并且可以忽略标签显示原始的HTML做任何事情。 欢迎您来尝试text/html作为一个MIME类型,看看你得到更好的结果。

最后,没有要求任何应用程序实际兑现你的链接。 ACTION_SEND是一个请求,而不是一个命令。 有第三方应用程序如何使用您发送过HTML没有规则,所以你会得到不同的从应用程序不同的结果。



文章来源: Android share Intent with clickable link