2

我正在尝试分享一个指向 facebook、twitter 或电子邮件的 html 链接。这是我到目前为止所拥有的,但有两件事出了问题。

Intent shareIntent = new Intent(Intent.ACTION_SEND);

shareIntent.setType("text/html");
shareIntent.putExtra(Intent.EXTRA_TEXT, "<!DOCTYPE html><html><body>" + htmlUrl + "</body></html>");

startActivity(Intent.createChooser(shareIntent, "Share!"));

在哪里htmlUrl = "<a href=\"http://{url}/?q=" + queryString.substring(0, queryString.length() - 1) + "\" >Text to url! </a>"

首先,这仅在列表中显示电子邮件应用程序。

其次,它在电子邮件中显示为全文而不是 HTML 项。

谢谢,德曼

4

4 回答 4

2

您的 MIME 类型错误。改用这个:

shareIntent.setType("text/plain");

如果您只想共享链接而不是完整的 HTML,只需使用 url 作为Intent.EXTRA_TEXT值:

shareIntent.putExtra( Intent.EXTRA_TEXT, url );

请注意,只有少数应用程序(如 GMail、蓝牙和 Dropbox)支持共享 HTML。使用纯文本让更多应用捕捉您的Intent

于 2012-10-16T15:18:57.747 回答
1

分享到Facebook(使用此方法只能分享链接)

Intent facebookIntent = new Intent(Intent.ACTION_SEND);
facebookIntent.setType("text/plain");
facebookIntent.setPackage("com.facebook.katana");
facebookIntent.putExtra(Intent.EXTRA_TEXT, shareUrl);
startActivity(facebookIntent);

分享到电子邮件(使用此方法可以将电子邮件内容更改为 html 格式,但不能使用默认电子邮件客户端,它适用于 gmail 客户端。)

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.putExtra(Intent.EXTRA_SUBJECT, shareTitle);
    intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(content of your email));
    intent.setType("message/rfc822");
    startActivity(Intent.createChooser(intent, "Share to Email..."));

分享到推特

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.putExtra(Intent.EXTRA_TEXT, your content);
    intent.setType("application/twitter");
    startActivity(intent);

希望这可以帮助。

于 2013-08-20T04:43:01.237 回答
1

您只会错过代码的一个小改动 - 用于Html.fromHtml将字符串编码为 HTML。

此链接提供了更详细的示例:http: //blog.iangclifton.com/2010/05/17/sending-html-email-with-android-intent/

这将不允许您在 Facebook 上共享,因为 Facebook 应用程序不支持ACTION_SENDtext/html但这将允许您使用 Gmail 应用程序共享 HTML 内容

于 2013-01-30T06:24:01.607 回答
0

这个

shareIntent.setType("text/html");

应该为html部分做。为什么只有电子邮件显示不知道,您是否安装了其他应用程序(如 facebook、twitter 等)来处理共享意图?

于 2012-10-16T15:19:02.810 回答