Android 与可点击的分享 Intent link
Android share Intent with clickable link
我浏览了整个网络,但尚未找到适合我特定需求的解决方案。我正在寻找一种通过共享意图共享信息的方法,该意图提供可点击的 link,例如:
查看这篇新闻文章
我已在我的 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 等中共享时,link 将被忽略并且推文仅显示纯文本,如下所示:
我试过 MIME 类型,但还是没有雪茄。无论如何,共享时是否可以让 "Jimmy's News App" 可点击?我非常感谢任何和所有帮助和/或提示。
提前致谢!
首先,我什至没想到您的项目能够构建,因为字符串资源不支持任意 HTML 标记。唯一记录的是 <b>
、<i>
和 <u>
.
其次,即使它确实支持任意 HTML 标记,您也将其从 Spanned
(getText()
) 转换回纯字符串,这将删除该格式。
为了克服这两个问题,要么将该字符串移动到 Java(毕竟,这不像你有 i18n,在你的代码片段中的其他地方使用硬编码的英语),或者将字符串内容包装在 Java =17=](同时修复损坏的 HTML,将 href
用于 <a>
属性):
<string name="shared_via"><![CDATA[via <a href="http://google.com">Jimmy's News App</a>]]></string>
此时,如果您查看连接后的字符串,它应该看起来像准HTML source:
Check out this news article
via <a href="http://google.com">Jimmy's News App</a>
接下来,当您通过 HTML 发送时,您将其声明为纯文本。因此,许多应用会将其视为纯文本,并可能执行从忽略标签到显示原始 HTML 的任何操作。欢迎您尝试 text/html
作为 MIME 类型,看看是否能获得更好的结果。
最后,不要求任何应用程序真正尊重您的链接。 ACTION_SEND
是请求,不是命令。第三方应用程序如何使用您发送过来的 HTML 没有任何规则,因此您将从不同的应用程序中获得不同的结果。
我浏览了整个网络,但尚未找到适合我特定需求的解决方案。我正在寻找一种通过共享意图共享信息的方法,该意图提供可点击的 link,例如:
查看这篇新闻文章
我已在我的 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 等中共享时,link 将被忽略并且推文仅显示纯文本,如下所示:
我试过 MIME 类型,但还是没有雪茄。无论如何,共享时是否可以让 "Jimmy's News App" 可点击?我非常感谢任何和所有帮助和/或提示。
提前致谢!
首先,我什至没想到您的项目能够构建,因为字符串资源不支持任意 HTML 标记。唯一记录的是 <b>
、<i>
和 <u>
.
其次,即使它确实支持任意 HTML 标记,您也将其从 Spanned
(getText()
) 转换回纯字符串,这将删除该格式。
为了克服这两个问题,要么将该字符串移动到 Java(毕竟,这不像你有 i18n,在你的代码片段中的其他地方使用硬编码的英语),或者将字符串内容包装在 Java =17=](同时修复损坏的 HTML,将 href
用于 <a>
属性):
<string name="shared_via"><![CDATA[via <a href="http://google.com">Jimmy's News App</a>]]></string>
此时,如果您查看连接后的字符串,它应该看起来像准HTML source:
Check out this news article
via <a href="http://google.com">Jimmy's News App</a>
接下来,当您通过 HTML 发送时,您将其声明为纯文本。因此,许多应用会将其视为纯文本,并可能执行从忽略标签到显示原始 HTML 的任何操作。欢迎您尝试 text/html
作为 MIME 类型,看看是否能获得更好的结果。
最后,不要求任何应用程序真正尊重您的链接。 ACTION_SEND
是请求,不是命令。第三方应用程序如何使用您发送过来的 HTML 没有任何规则,因此您将从不同的应用程序中获得不同的结果。