Jump to content
View in the app

A better way to browse. Learn more.

FGX Native

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

TfgShare. При отправке файла происходит смена типа на jpg

  • Status: Fixed
  • Priority: Critical
  • Resolution: Works as expected
  • Platform: Android
  • Affects version 1.16.2.0
  • Fix version: 1.16.3.0

Добрый день!

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

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

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

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

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

ShareDemo.zip

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.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.