我使用intent和Action.SEND在WhatsApp,twitter,Facebook和GMail等社交网络上分享我的自定义消息。 Gmail和除Facebook以外的其他应用程序一切正常!如何自定义我的代码以在Facebook上分享内容?我在Facebook上使用Facebook SDK分享没有问题,但我想用意图来做。
这就是我使用的:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, knowTitle+"Read the full article via MomsApp by EnfaMama A+ at http://meadjohnsonasia.com.my/mobileapp");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "I just read "+knowTitle);
sendIntent.setType("*/*");
startActivity(Intent.createChooser(sendIntent, "Share Your Favorite Article"));
答案 0 :(得分:5)
我所做的实际上是拦截所选择的目标操作者的目标,你可以通过使用你的actionprovider来做到这一点。假设你创建了一个带有onclick的项目启动了intent。为此,您可以实例化一个actionprovider来执行此操作。这个actionprovider可以有一个setOnShareTargetSelectedListener来拦截你想要以不同方式处理的任何意图(或者根本不是^^)。请参阅以下代码,了解如何配置actionprovider。
actionProvider.setShareIntent(createShareIntent());
actionProvider.setOnShareTargetSelectedListener(new OnShareTargetSelectedListener(){
@Override
public boolean onShareTargetSelected(ShareActionProvider source,
Intent intent) {
if ("com.facebook.katana".equals(intent.getComponent().getPackageName()) && mfacebooksharer != null) {
mfacebooksharer.shareStatus(subject, text);
return true;
}
return false;
}
});
每当选择facebook时,我都会使用我的mfacebooksharer来处理意图并遵循facebook API。 当然,actionrpovider需要有一个意图。 (就像你想要有意图一样)。我使用下面的方法来创建意图。
private Intent createShareIntent() {
intentsetter.setIntentleave(true);
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, text);
return shareIntent;
}
答案 1 :(得分:4)
根据Facebook的平台政策,您无法使用预填充共享对话框
Intent.EXTRA_TEXT
。它通常被认为是一个错误,但根据提交的here以及here的错误报告,Facebook明确提到情况并非如此(这不是错误)。
您可以详细了解他们的Platform Policies,平台政策IV.2
引用平台政策IV.2:
您不得预先填写与以下相关的任何字段 产品,除非用户先前手动生成了内容 工作流程:流故事(user_message参数为 Facebook.streamPublish和FB.Connect.streamPublish,以及消息 stream.publish的参数),照片(标题),视频(描述), 注释(标题和内容),链接(评论)和Jabber / XMPP。
这些字段供用户表达自己。预灌装 这些领域侵蚀了用户声音的真实性。
您可以从应用程序中共享故事的唯一方法是集成Facebook SDK,根据您的帖子,您已经能够成功。这是唯一可用的选项(不幸的是)。
答案 2 :(得分:1)
在Android中使用Intent,您只能共享没有文字的链接:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "http://www.google.ca");
startActivity(Intent.createChooser(intent, "Share with"));
它会起作用。如果您想共享文本和链接,则必须使用Facebook SDK for Android:https://github.com/facebook/facebook-android-sdk