Gre*_*Bee 34 android share facebook android-intent
我正在尝试使用Android分享意图在Facebook上发布内容.它看起来像这样:
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Free education for all! http://linkd.in/xU8mCc");
startActivity(shareIntent);
Run Code Online (Sandbox Code Playgroud)
所以我的帖子有两个 - 一些文字和一个链接.但是当消息在Facebook上发布时,它只有链接,没有消息.我尝试了各种附加功能,但没有任何作用
有人遇到过这个问题并解决了吗?我有Facebook应用程序版本1.8.1
编辑:我尝试删除链接,Facebook应用程序不接收我的消息(显示一个空白消息要发布),但不是相反的方式.所以看起来应用程序完全忽略了任何纯文本消息.我吓坏了!这是fb应用程序中的一个主要错误,根本无法发布文本消息(具有共享意图)?
Mat*_*imB 11
我刚刚构建了这段代码,它对我有用:
private void shareAppLinkViaFacebook(String urlToShare) {
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
String sharerUrl = "https://www.facebook.com/sharer/sharer.php?u=" + urlToShare;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(sharerUrl));
startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您打算使用常规Android分享意图,那么不幸的是,Facebook分享意图只能使用一个URL(确保它具有http://)并且不会添加其他文本消息.这是一个奇怪的限制,实际上没有意义.
您必须在项目中使用实际官方单独的Facebook Android SDK才能获得完整的共享功能.这是额外的工作.
我遇到了类似的问题.最后,我所做的是分支意图.如果他们选择通过Facebook共享(在常规的Android共享意图中),创建一个只有URL并将其推送到Facebook的新共享意图.所有其他共享选项(推特,消息,电子邮件)将正常工作.
我的问题和解决方案在这里:
根据他们选择分享的方法对Android Share Intent extras进行分支
String shareBody = "app string text " + act_txt + " more text! Get the app at http://www.appurl.com";
PackageManager pm = view.getContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(sharingIntent, 0);
for(final ResolveInfo app : activityList) {
Log.i(TAG, "app.actinfo.name: " + app.activityInfo.name);
//if((app.activityInfo.name).contains("facebook")) {
if("com.facebook.katana.ShareLinkActivity".equals(app.activityInfo.name)) {
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "http://www.appurl.com");
startActivity(Intent.createChooser(sharingIntent, "Share idea"));
break;
} else {
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "app name");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, "Share"));
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46901 次 |
| 最近记录: |