Jump to content
  • Status: Fixed
  • Priority: Critical
  • Resolution: Works as expected
  • Platform: Android
  • Affects version: 1.16.2.0

Добрый день!

Собственно, суть проблемы изложена в заголовке.

Во вложении представлен демонстрационный проект, воспроизводящий проблему на примере SVG-файла (передается файл с расширением jpg)

Также, было бы здорово, если бы имя передаваемого файла не изменялось!

При смене расширения на правильное принятый файл открывается без проблем.

Воспроизведение проблемы на iOS не проверял!

ShareDemo.zip


Fix version: 1.16.3.0

User Feedback

Recommended Comments

  • Administrators

Суть проблемы в том, что telegram не умеет работать с svg файлами.

Переименование файла и смена расширения - это то, что делает сам telegram под Android, когда получает корректный mime type = image/svg+xml согласно стандарту для расширения svg. Однако, для Android есть хак, позволяющий обойти данное ограничение. Для этого надо передать один из текстовых mime type, например text/*.

Под iOS нет возможности передать svg в telegram .

В версии 1.16.3.0 мы добавили новый необязательный аргумент AMimeType в метод AddFile. Данный аргумент будет актуален только для Android. Для iOS данный аргумент будет проигнорирован.

  IFGXShareManager = interface
  ['{0C1EE1FC-270C-4085-8CA2-03729453A553}']
    function AddText(const AText: string): IFGXShareManager;
    /// <summary>Добавление файла.</summary>
    /// <remarks>
    ///   <para>
    ///     Тип содержимого определяется на основании расширения файла.
    ///   </para>
    ///   <para>
    ///     Аргумент <c>AMimeType</c> имеет смысл только для Android платформы.
    ///     Оставьте этот аргумент пустым, чтобы тип данных определился автоматически.
    ///     Для iOS данный аргумент будет проигнорирован.
    ///   </para>
    /// </remarks>
    function AddFile(const AFileName: string; const AMimeType: string = ''): IFGXShareManager;

Пример вызова для приаттаченного примера:

  if TfgAssetsManager.Current.Find<TfgAssetFile>('svg', AssetFile) then
    TfgShareManagerFactory.CreateManager
    .AddFile(AssetFile.FileName, 'text/*')
    .Execute(Button1, 'Отправка SVG-файла');

 

  • Administrators

Changed Status to Fixed

Changed Resolution to Works as expected

Changed Fix version to 1.16.3.0

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.