使用 Xamarin Forms 将照片保存在 iPhone 或 iPad 的相册中



大家好,我正在做一个项目,我需要从 url 下载文件。现在我正在下载文件并将其保存在个人文件夹中,它保存在应用程序目录中。我通过文件路径获取该文件并以 Web 视图显示。但是,如果文件是图像或视频,则我在ipad的相册或图库中看不到。

你们中的任何人都可以帮助解决这个问题吗?

还有一件事,我在哪里可以找到通过iPhone或iPad保存在个人文件夹中的文档和pdf?

提前谢谢。

您只需将照片保存到个人文件夹,这是iOS上的沙盒文件夹。 您可以使用依赖服务将图像写入系统的相册。

首先在 PCL 中创建一个接口:

public interface ISavePhotosToAlbum
{
    void SavePhotosWithStream(Stream stream);
}

下载映像后,使用它以本机编写:

HttpWebRequest aRequest = (HttpWebRequest)WebRequest.Create(urlStr);
HttpWebResponse aResponse = (HttpWebResponse)aRequest.GetResponse();
DependencyService.Get<ISavePhotosToAlbum>().SavePhotosWithStream(aResponse.GetResponseStream());

最后,我们应该在本地平台上实现这个Denpendency Service

[assembly: Dependency(typeof(SaveToAlbum))]
namespace SavePhotosDemo.iOS
{
    public class SaveToAlbum : ISavePhotosToAlbum
    {
        public void SavePhotosWithStream(Stream stream)
        {
            var imageData = NSData.FromStream(stream);
            var image = UIImage.LoadFromData(imageData);
            image.SaveToPhotosAlbum((img, error) =>
            {
            });
        }
    }
}

请注意:在iOS上,当您要将照片写入相册时,我们需要在info.plist中添加隐私。在iOS 11上添加NSPhotoLibraryAddUsageDescription,iOS 10添加NSPhotoLibraryUsageDescription

最新更新