Плагин: Share_plus
Версия: 9.0.0
Flutter SDK: 3.19.6
Описание проблемы:
У меня есть устройство iOS с установленным приложением Telegram, но я не создал учетную запись и не вошел в систему. Несмотря на это, при попытке поделиться файлом через Telegram, мой телефон зависает. Проблема возникает из-за отсутствия авторизованной учетной записи в Telegram. При возникновении этой проблемы в консоли отображается следующий журнал:
"[NSExtension] Запрос расширения содержит входные элементы, но точка расширения не указывает набор разрешенных классов полезной нагрузки. . Подкласс NSExtensionContext точки расширения должен реализовывать +_allowedItemPayloadClasses. Он должен возвращать набор разрешенных классов полезной нагрузки NSExtensionItem. В будущем этот запрос завершится ошибкой."
Вкл. Однако на устройствах Android обмен файлами через Telegram без предварительного входа в учетную запись не приводит к каким-либо ошибкам или зависаниям телефона. Операция общего доступа возвращает статус успеха, а необработанный результат возвращается как "com.google.android.gm/com.google.android.gm.ComposeActivityGmailExternal."
Шаги для воспроизведения:
1. Выйдите из любой желаемой социальной сети (например, Instagram, Telegram).
2. Выберите любой файл, которым хотите поделиться, и при необходимости добавьте подпись.
3. Попытайтесь поделиться файлом, используя платформу социальной сети, из которой вы Вы полностью вышли из системы.
Пример кода:
Код: Выделить всё
Future sharePlus(String path) async{
print('LOOK: STARTED');
try{
final result = await Share.shareXFiles(
[XFile(path)],
text: null, //LocaleKeys.receipt.tr(),
);
switch(result.status){
case ShareResultStatus.success:
print('LOOK: SUCCESS: ${result.raw}');
case ShareResultStatus.dismissed:
print('LOOK: DISMISSED: ${result.raw}');
case ShareResultStatus.unavailable:
print('LOOK: UNAVAILABLE: ${result.raw}');
}
} catch(e){
print('LOOK: ERROR = $e');
}
}
Код: Выделить всё
[NSExtension] Extension request contains input items but the extension point does not specify a set of allowed payload classes. The extension point's NSExtensionContext subclass must implement +_allowedItemPayloadClasses. This must return the set of allowed NSExtensionItem payload classes. In future, this request will fail with an error.
Подробнее здесь: https://stackoverflow.com/questions/785 ... ocial-medi