, где я сделал копию актива в другое место и обновил значение Localuri . Затем я собираю данные отправить уведомление, используя эти USEMEMO и обратный вызов < /p>
Аналогично UnnotificationAttachment, не подходящему для прикрепления изображения, но Expo. Так что я сделал.[code] const [localAssets] = useAssets(localAttachments ?? []); const [assets, setAssets] = useState([]);
useEffect(() => { let mounted = true; (async () => { if (!localAssets) { return; } const uuid = Crypto.randomUUID(); const nextAssets = _.cloneDeep(localAssets.filter((it) => it.downloaded)); for (const asset of nextAssets) { const tempLocalUri = `${FileSystem.cacheDirectory}${asset.hash}.${uuid}.${asset.type}`; await FileSystem.copyAsync({ from: asset.localUri!, to: tempLocalUri, });
asset.localUri = tempLocalUri; } if (mounted) { setAssets(nextAssets); } })(); return () => { mounted = false; }; }, [localAssets]); [/code] , где я сделал копию актива в другое место и обновил значение Localuri . Затем я собираю данные отправить уведомление, используя эти USEMEMO и обратный вызов < /p> [code] const attachments = useMemo< Notifications.NotificationContentAttachmentIos[] >(() => { if (!assets) { return []; } return assets .filter((it) => it) .map((it) => ({ identifier: it.hash, type: `public.${it.type}`, typeHint: `public.${it.type}`, url: it.localUri, hideThumbnail: false, })); }, [assets]);
const onSendNotification = useCallback(() => { (async () => { const request: Notifications.NotificationRequestInput = { content: content, trigger: { date: Date.now() + 2_000, }, }; try { console.debug(attachments); await Notifications.scheduleNotificationAsync(request); } catch (error) { console.error(error); } })(); }, [content]); < /code> Результатом является следующая отладка, которая показывает UUID и является URI файла. У меня также есть < /code>, который подтверждает, что он отображается как изображение.[{"hideThumbnail": false, "identifier": "633435dcb418833920a16771610ca404", "type": "public.png", "typeHint": "public.png", "url": "file:///var/mobile/Containers/Data/Application/110DC7BD-A51E-44D2-A072-8C75BC8F1E3E/Library/Caches/633435dcb418833920a16771610ca404.3acf6d50-e0f0-4d5e-ad55-13b030479460.png"}] < /code> и сообщение об ошибке < /p>
[ошибка: не удалось назначить уведомление. Error domain = unerrordomain code = 100 "URL-адрес файла файла umpord use userinfo = {nslocalizeddescription = неверное прикрепление}]
Также попытка использовать React-native-fs [/code] для предоставления Predirectorypath , а не Code> не работает. class = "lang-js prettyprint-override">[code]const tempLocalUri = `file://${RNFS.TemporaryDirectoryPath}${asset.hash}.${uuid}.${asset.type}`;
let target = `${RNFS.TemporaryDirectoryPath}${asset.hash}.${uuid}.${asset.type}`; if (await RNFS.exists(target)) { await RNFS.unlink(target); } await RNFS.copyFile( asset.localUri!.substring('file://'.length), target, ); asset.localUri = tempLocalUri; [/code] код по адресу https://github.com/trajano/expo-experiments/blob/test-expand-idea/packages/my-app/src/stories/notification.stories.tsx
Я получил уведомление от приложения Passbook, в котором я сохранил купленный билет в кино. В уведомлении было два изображения на экране блокировки: слева был значок исходного приложения, в котором я купил билеты в кино, а справа — изображение...
Я использую иконки Bootstrap 5, которые работают очень хорошо, но у меня есть несколько файлов SVG, которые мне нужно включить, поскольку они не находятся в коллекции значков. Lang-HTML PrettyPrint-Override >
Я использую иконки Bootstrap 5, которые работают очень хорошо, но у меня есть несколько файлов SVG, которые мне нужно включить, поскольку они не находятся в коллекции значков. Lang-HTML PrettyPrint-Override >
Я не могу увидеть Push -уведомления на моем мобильном устройстве для моего приложения в производстве. Моя проблема заключается только в iOS, и только после того, как я обновил свой проект по экспо -53. Понижение его обратно до 52 показало мне...
Question:
I'm building a React Native app using Expo and deploying it as a static web app with expo-router.
Everything works fine on iOS and Android, but when I build for web using:
npx expo export -p web
…my app builds successfully and deploys to...