Могу ли я использовать ресурсы flutter для прикрепления локальных уведомлений на iOS
Я использую пакет flutter_local_notifications для отображения уведомлений в моем приложении Flutter. Я хотел бы показать изображение с моими уведомлениями на iOS, добавив изображение в массив «вложений» в IOSNotificationDetails.
final iosNotificationDetails = IOSNotificationDetails(
attachments: [IOSNotificationAttachment('assets/image.png')],
);
Я видел пример загрузки изображения по URL-адресу и сохранения его в каталоге документов приложения, но хотел бы знать, есть ли способ загрузить изображение непосредственно из ресурсов flutter или из файла в моем проекте iOS.
2 ответа
Для локального изображения вы можете сделать следующее:
import 'package:flutter/services.dart' show rootBundle;
import 'dart:async';
import 'dart:io';
Future<String> getImageFromAssets(String asset) async {
final byteData = await rootBundle.load(asset);
final file = File('${(await getTemporaryDirectory()).path}/${asset.split('/').last}');
await file.writeAsBytes(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
return file.path;
}
И затем сохраните эту строку в переменной
final image = await getImageFromAssets('assets/image.png');
Наконец, присвойте это значение iosNotificationDetails.
attachments: [IOSNotificationAttachment(image)],
импортировать 'dart:async'; импортировать 'dart:io';
import 'package:flutter / services.dart' show rootBundle;import 'package:path_provider / path_provider.dart';
Будущее getImageFileFromAssets(String path) async {final byteData = await rootBundle.load ('assets / $path');
финальный файл = файл ('${(ожидание getTemporaryDirectory ()). путь} / $ путь'); ждать файл.writeAsBytes(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
вернуть файл; }