在分享意图中使用 Facebook SDK 的 ShareContent android
Use Facebook sdk's ShareContent in share intent android
我正在尝试在我的应用程序中使用 shareintent,但我 运行 在将 link 分享到 facebook 时遇到问题,预览时没有显示图像。因此,尝试自定义 android shareintent,以便在选择 facebook 时使用来自 facebooksdk 的共享功能,但我似乎无法让它工作。下面是我尝试自定义 shareintent 的代码,
Intent share = new Intent(android.content.Intent.ACTION_SEND);
PackageManager pm = getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(share, 0);
for (final ResolveInfo app : activityList) {
if (app.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana")) {
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentTitle(property.PropertyName)
.setImageUrl(Uri.parse(property.ImagePath))
.setContentUrl(Uri.parse(property.PropertyPermaLink))
.build();
ShareDialog shareDialog = new ShareDialog(this);
shareDialog.canShow(content);
break;
} else {
share.setType("text/plain");
share.addFlags(share.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
share.putExtra(Intent.EXTRA_SUBJECT, "");
share.putExtra(Intent.EXTRA_TEXT, property.PropertyPermaLink);
startActivity(Intent.createChooser(share, "Share property!"));
}
}
调试上面的代码后发现activitylist只有一个元素。那么我该如何解决这个问题呢?
您需要添加发送意图正在处理的 Mime 数据类型以获得返回的适当活动:
share.setType("text/plain");
只需尝试 SharePhotoContent 而不是 ShareLinkContent。
如果您想使用 ShareLinkContent,请确保 property.ImagePath 指向真实的 http 图像 link。如果 link 包含在默认 android 浏览器应用程序中工作的 https 检查。
我正在尝试在我的应用程序中使用 shareintent,但我 运行 在将 link 分享到 facebook 时遇到问题,预览时没有显示图像。因此,尝试自定义 android shareintent,以便在选择 facebook 时使用来自 facebooksdk 的共享功能,但我似乎无法让它工作。下面是我尝试自定义 shareintent 的代码,
Intent share = new Intent(android.content.Intent.ACTION_SEND);
PackageManager pm = getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(share, 0);
for (final ResolveInfo app : activityList) {
if (app.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana")) {
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentTitle(property.PropertyName)
.setImageUrl(Uri.parse(property.ImagePath))
.setContentUrl(Uri.parse(property.PropertyPermaLink))
.build();
ShareDialog shareDialog = new ShareDialog(this);
shareDialog.canShow(content);
break;
} else {
share.setType("text/plain");
share.addFlags(share.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
share.putExtra(Intent.EXTRA_SUBJECT, "");
share.putExtra(Intent.EXTRA_TEXT, property.PropertyPermaLink);
startActivity(Intent.createChooser(share, "Share property!"));
}
}
调试上面的代码后发现activitylist只有一个元素。那么我该如何解决这个问题呢?
您需要添加发送意图正在处理的 Mime 数据类型以获得返回的适当活动:
share.setType("text/plain");
只需尝试 SharePhotoContent 而不是 ShareLinkContent。 如果您想使用 ShareLinkContent,请确保 property.ImagePath 指向真实的 http 图像 link。如果 link 包含在默认 android 浏览器应用程序中工作的 https 检查。