GOOGLE ADS

понедельник, 9 мая 2022 г.

Сохранение фотографий в фотоальбомах iPhone или iPad с помощью Xamarin Forms

Привет всем, я делаю проект, в котором мне нужно загрузить файл с URL-адреса. Теперь я загружаю файл и сохраняю его в личной папке, и он сохраняется в каталоге приложений. Я получаю этот файл через путь к файлу и отображаю в веб-представлении..Но если файл является изображением или видео, я не вижу его в фотоальбомах или галерее моего ipad.

Может кто-нибудь из вас помочь в решении этой проблемы.

И еще один момент, где я могу найти документы и PDF-файлы, сохраненные в личной папке через iPhone или iPad?

Заранее спасибо.


Решение проблемы

Вы просто сохраняете фотографии в личную папку, это папка-песочница на 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());

Наконец, мы должны реализовать эту службу зависимости на собственной платформе:

[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.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...