Как загрузить файл изображения в GoogleDrive в формах Xamarin - PullRequest
0 голосов
/ 17 февраля 2019

Мне интересно Если есть какой-либо способ загрузить изображение из приложения на Google Drive в формах Xamarin, я следовал по API Google Drive по этой ссылке

https://developers.google.com/drive/api/v3/manage-uploads

, но в xamarin таким образомне работает некоторые библиотеки не доступны

Это мой код

 var image = new Image

            {
                Source = ImageSource.FromFile(filepath)
            };

            var fileMetadata = new Google.Apis.Drive.v3.Data.File()
            {
                Name = "photo.jpg"
            };
            FilesResource.CreateMediaUpload request;
            using (var stream = new System.IO.FileStream(filepath,
                                    System.IO.FileMode.Open))
            {
                request = DriveService.Files.Create(
                    fileMetadata, stream, "image/jpeg");
                request.Fields = "id";
                request.Upload();
            }
            var file = request.ResponseBody;
            Console.WriteLine("File ID: " + file.Id);

DriveService показывает мне ошибку компиляции, и я не знаю, будет ли этот способ работать или нет, Любая помощь?

1 Ответ

0 голосов
/ 18 февраля 2019

Google Drive API доступен в Xamarin.iOS и Xamarin.Android. Поэтому вы можете использовать DependencyService и загрузить изображение на iOS и платформу Android.

в Forms, создав интерфейс

public interface IUploadFile
{
  void UploadFile(string filePath,string fileName);
}

Реализация iOS

[assembly: Dependency(typeof(UploadFileImplementation))]
namespace xxx.iOS
{

  public class UploadFileImplementation : IUploadFile
  {
    public UploadFileImplementation () { }

    public UploadFile(string filePath,string fileName)
    {
        // upload file here

    }
  }
}

Реализация Android

[assembly: Dependency(typeof(UploadFileImplementation))]
namespace xxx.Droid
{

  public class UploadFileImplementation : IUploadFile
  {
    public UploadFileImplementation () { }

    public UploadFile(string filePath,string fileName)
    {
        // upload file here

    }
  }
}

Вы можете загрузить Google ДискAPI для iOS и Android от nuget. И предоставляет sample , как загрузить файл на собственную платформу.

...