Могу ли я использовать ресурсы 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));

вернуть файл; }

Другие вопросы по тегам