【发布时间】:2019-12-15 05:14:09
【问题描述】:
我无法将图片分享到 Instagram,我不知道为什么。
我正在使用 Xamarin Forms,我正在尝试将图像共享到 Instagram,使用 DependencyService 允许调用 Project.iOS 中的函数
我正在 ios 模拟器上测试应用程序
首先,我尝试从 Uri 中获取 UIImage:
uri = https://oc.ocstatic.com/images/favicon/android-chrome-512x512.png
public static UIImage FromUrl(string uri)
{
var imageName = uri.Substring(uri.LastIndexOf('/') + 1);
if (File.Exists(Path.Combine(NativeImagesPath, imageName)))
return UIImage.FromFile(Path.Combine(NativeImagesPath, imageName));
if (File.Exists(Path.Combine(ImagesCachePath, imageName)))
return UIImage.FromFile(Path.Combine(ImagesCachePath, imageName));
if (Items.ContainsKey(uri))
return Items[uri];
using (var url = new NSUrl(uri))
using (var data = NSData.FromUrl(url))
{
var image = UIImage.LoadFromData(data);
if (!NSFileManager.DefaultManager.FileExists(ImagesCachePath))
NSFileManager.DefaultManager.CreateDirectory(ImagesCachePath, false, null);
var result = NSFileManager.DefaultManager.CreateFile(Path.Combine(ImagesCachePath, imageName), data, new NSFileAttributes());
if (!result)
Items[uri] = image;
return image;
}
}
然后,我想使用下面的代码将此 UIImage 分享到 Instagram:
var imageURL = FromUrl(path);
NSString documentDirectory = (new NSString(Environment.GetFolderPath(Environment.SpecialFolder.Personal)));
string saveImagePath = documentDirectory.AppendPathComponent(new NSString(@"Image.ig"));
NSData imageData = imageURL.AsPNG();
imageData.Save(saveImagePath, true);
NSUrl imageURLfinal = NSUrl.FromFilename(saveImagePath);
if (UIApplication.SharedApplication.OpenUrl(instagramURL)) {
UIDocumentInteractionController DocumentController = new UIDocumentInteractionController();
DocumentController.Delegate = new UIDocumentInteractionControllerDelegateClass(this);
DocumentController.Url = imageURLfinal;
DocumentController.Uti = "com.instagram.photo";
DocumentController.PresentOpenInMenu(new RectangleF(1, 1, 1, 1), this.View, true);
returnMessage = "NSURL: " + path;
}
else
{
returnMessage = "Instagram Not Found";
}
````
I expect the Instagram screen.
【问题讨论】:
-
你试过用“com.instagram.exlusivegram”这个Uti吗?
-
是的,但什么都没有:(
-
也许,可以在模拟器上运行???
-
检查您是否已经在设备上安装了 Instagram 应用程序。否则打不开
-
我只打开 Instagram,但我没有要发布的照片
标签: image xamarin.forms xamarin.ios share