内容分享在Facebook上的Android(Sharing Content On FaceBook

2019-07-04 01:28发布

我使用意图和Action.SEND分享社交网络例如WhatsApp,Twitter,Facebook和Gmail在我的自定义消息。 一切都在Gmail和Facebook的以外的其他应用程序ok了! 如何定制我的代码在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"));

Answer 1:

我所做的其实是截取intenthandlers的选择目标,您可以使用您的actionprovider做到这一点。 比方说,你创建了一个项目,与一个onclick开始的意图。 为了做到这一点,你可以实例化一个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。 Ofcourse,这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;
    }


Answer 2:

由于按照Facebook的平台策略,你可以不使用预先填写份额对话框Intent.EXTRA_TEXT 。 它通常被认为是一个错误,但按照提交bug报告在这里也, 在这里 ,脸谱明确提到,这是不是这种情况(这是不是一个错误)。

你可以阅读更多关于他们的平台策略具体而言, 平台策略IV.2

从平台策略IV.2报价:

你不能预先填充任何与下列产品相关的领域,除非用户手动生成的内容之前在工作流程:流故事(USER_MESSAGE参数Facebook.streamPublish和FB.Connect.streamPublish,以及流信息参数。发布),照片(标题),视频(介绍),备注(标题和内容),链接(评论),和Jabber / XMPP。

这些字段供用户表达自己。 预填充这些字段侵蚀用户语音的真实性。

你可以分享您的应用程序故事的唯一方式是通过整合Facebook的SDK,它按照你的帖子,你已经能够成功。 可用(不幸)的唯一选择。



Answer 3:

在Android中使用的意图,你只能共享一个链接没有文字:

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为Android: https://github.com/facebook/facebook-android-sdk



文章来源: Sharing Content On FaceBook Android