1

我想和我的朋友们分享一些东西。所以我更喜欢android分享意图。我用了,

Intent i=new Intent(android.content.Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(android.content.Intent.EXTRA_TEXT, "my share text");
startActivity(Intent.createChooser(i, "share via"));  

这显示了 Facebook、Twitter、Gmail、Message、Skype 等可用应用程序的列表。如果我按某种意义上的 Twitter,上面的文本“我的共享文本”会显示在推文文本框中。但如果我选择 Facebook,状态消息不会显示。我想以编程方式设置状态消息。

我怎样才能做到这一点?

4

3 回答 3

2

Facebook SDK 有这个错误,我知道这很烦人。但是,如果您将链接(并且只有一个链接)设置为“我的分享文本”,它将出现在 facebook 分享框中。

于 2013-04-25T08:08:46.987 回答
0

我刚刚构建了这段代码,它对我有用:

private void shareAppLinkViaFacebook() {
    String urlToShare = "YOUR_URL";

    try {
        Intent intent1 = new Intent();
        intent1.setClassName("com.facebook.katana", "com.facebook.katana.activity.composer.ImplicitShareIntentHandler");
        intent1.setAction("android.intent.action.SEND");
        intent1.setType("text/plain");
        intent1.putExtra("android.intent.extra.TEXT", urlToShare);
        startActivity(intent1);
    } catch (Exception e) {
        // If we failed (not native FB app installed), try share through SEND
        Intent intent = new Intent(Intent.ACTION_SEND);
        String sharerUrl = "https://www.facebook.com/sharer/sharer.php?u=" + urlToShare;
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse(sharerUrl));
        startActivity(intent);
    }
}
于 2014-04-10T17:19:49.650 回答
0

Facebook 不允许像 twitter 那样在状态框中预先填充文本。但是我们可以将带有 url 的文本传递给 Facebook。它出现在状态框下方。检查下面的代码。

注意:使用 Facebook SDK 分享[推荐]。

通过意图进行本机共享

 Intent shareIntent= new Intent();
 shareIntent.setAction(Intent.ACTION_SEND);
 shareIntent.putExtra(Intent.EXTRA_TEXT, "http://www.google.com");
 shareIntent.setType("text/plain");
 shareIntent.setPackage("com.facebook.katana");
 startActivity(shareIntent); 

通过 Facebook SDK 分享

ShareDialog shareDialog;

// Sharing in Facebook using the SDK
FacebookSdk.sdkInitialize(this);
shareDialog = new ShareDialog(this);

String title = "Demo Title";
String URL = "http://www.google.com";

ShareLinkContent linkContent = new ShareLinkContent.Builder()
                .setContentTitle(title).setContentDescription(URL)
                .setContentUrl(Uri.parse(URL)).build();

shareDialog.show(linkContent);

检查下面的链接以供参考。

链接 1

让我知道查询或澄清。

于 2015-12-14T07:30:47.617 回答