【发布时间】:2017-12-26 13:31:03
【问题描述】:
这是我上一个问题的后续:Xamarin.Forms App return data to calling App
效果很好,我可以将图像分享到任何地方,但 Facebook cmets 除外。当我单击内容框上的相机时,可以选择应用程序,我可以选择图像,调用设置结果和完成,应用程序关闭并将数据发送到 Facebook,然后我得到错误:图像无法上传,重试?
我找不到发布到状态或评论之间的任何根本区别,所以我猜它很微妙。关于如何改变我正确发帖的意图有什么想法吗?
为了完整性而添加:
Bitmap b = null;
string url;
if (!string.IsNullOrEmpty(this.saleItems[i].ImageUrl))
{
url = this.saleItems[i].ImageUrl;
}
else
{
url = await FileHelper.GetLocalFilePathAsync(this.saleItems[i].Id);
}
//download
using (var webClient = new WebClient())
{
var imageBytes = webClient.DownloadData(url);
if (imageBytes != null && imageBytes.Length > 0)
{
b = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
}
}
//set local path
var tempFilename = "test.png";
var sdCardPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
var filePath = System.IO.Path.Combine(sdCardPath, tempFilename);
using (var os = new FileStream(filePath, FileMode.Create))
{
b.Compress(Bitmap.CompressFormat.Png, 100, os);
}
b.Dispose();
var imageUri = Android.Net.Uri.Parse($"file://{sdCardPath}/{tempFilename}");
var sharingIntent = new Intent();
sharingIntent.SetAction(Intent.ActionSend);
sharingIntent.SetType("image/*");
sharingIntent.PutExtra(Intent.ExtraText, "some txt content");
sharingIntent.PutExtra(Intent.ExtraStream, imageUri);
sharingIntent.AddFlags(ActivityFlags.GrantReadUriPermission);
//await SaleItemDataService.Instance.BuySaleItemAsync(this.saleItem);
SetResult(Result.Ok, sharingIntent);
Finish();
【问题讨论】:
-
我知道图像的路径是正确的,我知道它包含在意图中,我已经在清单中设置了读写外部存储的权限。此代码适用于 Facebook、Instagram、Twitter、Messenger 和 WhatsApp,仅适用于 Facebook cmets。谢谢
-
我无法复制,但这里有几个想法: 1. 您是否使用创建原始帖子的同一用户发表评论? 2.如果不是,该帖子是公开的吗?
-
我可以在哪里通过手机对您的帖子发表评论?
-
尝试使用手机上的其他应用来挑选图片。那一个会通过吗?
-
测试链接肯定有帮助