Я новичок в Amplify, но успешно создал эту настройку через CLI для ReactNative:
│ Категория │ Имя ресурса │ Операция │ Плагин поставщика │ │ Аутентификация │ userPoolGroups │ Без изменений │ awscloudformation │ │ Авторизация │ Аренда │ Без изменений │ awscloudformation │ │ Аналитика │ RentAppIOS │ Без изменений │ awscloudformation │ │ Уведомления │ RentAppIOS │ Без изменений │ │ Сейчас я пытаюсь заставить push-уведомления работать на IOS с помощью PinPoint. Все разрешения выглядят нормально, но я сталкиваюсь с ошибкой при попытке запустить updateEndpoint в Analytics, который должен создать новую конечную точку в PinPoint. Это ошибка:
AWSPinpointProvider — ошибка updateEndpoint [TypeError: невозможно прочитать свойство «byteLength» неопределенного значения] Это функция, которая вызывается после входа пользователя в систему и вызывает ошибку:
const RegisterForPushNotifications = async () => { const {атрибуты: {sub}} = ждут Auth.currentUserInfo(); если (суб) { DeviceInfo.getDeviceToken().then((deviceToken) => { Analytics.updateEndpoint({ адрес: устройствоТокен, optOut: «НЕТ», идентификатор пользователя: суб, Тип канала: "APNS", }).then(() => { console.log("Конечная точка создана"); }).catch((ошибка) => { console.log('Ошибка обновления конечной точки', ошибка); }); }); } } Переменные sub и deviceToken имеют ожидаемые значения. Вот настройка конфигурации при запуске приложения:
Amplify.configure({ ...авсконфигурация, Аналитика: { отключено: ложь, }, Прогнозы: { поставщик: AmazonAIPredictionsProvider, регион: awsconfig.aws_mobile_analytics_app_region, }, }); Analytics.configure({ ...авсконфигурация, AWSPinpoint: { регион: awsconfig.aws_mobile_analytics_app_region, }, }); PushNotification.configure({ ...авсконфигурация, onNotification: функция (уведомление) { console.log('УВЕДОМЛЕНИЕ:', уведомление); Оповещение.alert( уведомление.заголовок, уведомление.тело, [{ текст: 'ОК' }], { можно отменить: ложь } ); Notification.finish("backgroundFetchResultNewData"); }, разрешения: { предупреждение: правда, значок: правда, звук: правда, }, popInitialNotification: правда, RequestPermissions: правда, }); Вот пример файла aws-exports.js, который импортируется как awsconfig:
const awsmobile = { aws_project_region: "eu-west-2", aws_cognito_identity_pool_id: "eu-west-2:xxxxxxxx-c514-4431-91c0-xxxxxxxxx", aws_cognito_region: "eu-west-2", aws_user_pools_id: "eu-west-2_xxxxxxxx", aws_user_pools_web_client_id: "xxxxxxxxxxxxxxxxxxx2m5pmf", aws_pinpoint_id: "b6846xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", aws_mobile_analytics_app_id: "xxxxxxxxxxete", aws_mobile_analytics_app_region: "eu-west-2", aws_mobile_analytics_app_title: "Аренда", aws_mobile_analytics_auto_session_record: правда, aws_mobile_analytics_disabled: ложь }; экспортировать awsmobile по умолчанию; Я очень надеюсь, что кто-нибудь увидит, что не так, я провел несколько дней, просматривая это, и доступная в Интернете документация ничего не подчеркивает. Я ценю любые отзывы
