Отправьте на конечную точку моего сервера данные формы с двумя изображениями файлов и двумя строками, реагирующими на ко ⇐ Android
-
Гость
Отправьте на конечную точку моего сервера данные формы с двумя изображениями файлов и двумя строками, реагирующими на ко
У меня есть приложение, которое было скомпилировано в мобильное приложение для Android с помощью Capacitor Ionic.
В части этого приложения пользователь должен сделать две фотографии, чтобы подтвердить свою личность. Я делаю это с помощью этого кода:
// Импорт конденсаторов импортировать { Camera, CameraResultType, CameraSource } из '@capacitor/camera'; const [изображения, setImages] = useState([]); const takePicture = async (valueToEdit) => { пытаться { const photo = await Camera.getPhoto({ тип результата: CameraResultType.Uri, разрешить редактирование: ложь, источник: CameraSource.Camera, качество: 60, PromptLabelCancel: 'Отмена', }); const blob = await fetch(photo.webPath).then((r) => r.blob()); const name = new Date().getTime() + '.jpeg'; const imageTitle = valueToEdit; константное новое изображение = { itemId: imageTitle, img: новый файл ([blob], имя, {тип: blob.type}), }; // Проверяем, существует ли уже изображение с таким же itemId const imageIndex = images.findIndex( (изображение) => image.itemId === imageTitle ); если (imageIndex !== -1) { // Заменяем существующее изображение новым const newImages = [...изображения]; newImages[imageIndex] = newImage; setImages (новые изображения); } еще { // Добавляем новое изображение, если оно не существует setImages((prevImages) => [...prevImages, newImage]); } } поймать (е) {} }; Затем я отправляю код на сервер в этой функции:
// Обрабатываем отправку данных const handleValidateKyc = () => { setErrors({}); если (documentId === '') { setErrors((prevErrors) => ({ ...предыдущие ошибки, documentId: 'Ввести номер документа', })); возвращаться; } if (documentId !== userProfile?.documentId) { setErrors((prevErrors) => ({ ...предыдущие ошибки, documentId: 'Документ не совпадает с зарегистрированным', })); возвращаться; } константные данные формы = { dniImage: images.find((image) => image.itemId === 'dniImage').img, selfiWithDNI: images.find((image) => image.itemId === 'selfiWithDNI').img, idNumber: идентификатор документа, idUser: userProfile.id, }; console.log(formData); sendKycData (formData); }; Моя функция sendKycData является дублирующей функцией и выглядит следующим образом:
// Обновляем данные KYC. экспортировать const sendKycData = (kycData) => { возврат (отправка) => { диспетчеризация ({ тип: 'KYC_VALIDATION_START' }); const kycFormData = новая FormData(); kycFormData.append('dniImage', kycData.dniImage); kycFormData.append('selfiWithDNI', kycData.selfiWithDNI); kycFormData.append('idNumber', kycData.idNumber); kycFormData.append('idUser', kycData.idUser); const sendKycDataConfig = { метод: «пост», maxBodyLength: бесконечность, URL: 'URL-адрес сервера', заголовки: { «Тип контента»: «многочастные/данные формы», Принимать: '*/*', }, данные: kycFormData, }; AxiosInterceptorRequest (sendKycDataConfig) .then((соответственно) => { console.log(соответственно); если (соответственно.статус !== 200) { отправлять({ введите: «KYC_VALIDATION_ERROR», }); отправлять( enqueueSnackbar({ // сообщение: соотв.?.data?.data, сообщение: «Ошибка KYC», параметры: { ключ: новая Date().getTime() + Math.random(), вариант: 'ошибка', }, }) ); } если (соответственно.статус === 200) { диспетчеризация ({тип: 'KYC_VALIDATION_SUCCESS' }); отправлять({ введите: «UPDATE_USER_SUCCESS», полезная нагрузка: соотв.data.data, }); отправлять( enqueueSnackbar({ сообщение: «KYC ок», // сообщение: соотв.?.data?.message, параметры: { ключ: новая Date().getTime() + Math.random(), вариант: 'успех', }, }) ); } }) .catch((e) => { console.log(е); }); }; }; В Интернете он работает отлично, но когда я компилирую его для мобильных устройств под Android с помощью Capacitor, он не отправляет изображения файлов и возвращает ошибку, которая выглядит следующим образом:
Не удалось найти плагин Capacitor для обработки requestCode, пробуем плагины Cordova 1418078302
Он даже не печатает ответ
Пожалуйста, может кто-нибудь помочь мне решить эту проблему??
У меня есть приложение, которое было скомпилировано в мобильное приложение для Android с помощью Capacitor Ionic.
В части этого приложения пользователь должен сделать две фотографии, чтобы подтвердить свою личность. Я делаю это с помощью этого кода:
// Импорт конденсаторов импортировать { Camera, CameraResultType, CameraSource } из '@capacitor/camera'; const [изображения, setImages] = useState([]); const takePicture = async (valueToEdit) => { пытаться { const photo = await Camera.getPhoto({ тип результата: CameraResultType.Uri, разрешить редактирование: ложь, источник: CameraSource.Camera, качество: 60, PromptLabelCancel: 'Отмена', }); const blob = await fetch(photo.webPath).then((r) => r.blob()); const name = new Date().getTime() + '.jpeg'; const imageTitle = valueToEdit; константное новое изображение = { itemId: imageTitle, img: новый файл ([blob], имя, {тип: blob.type}), }; // Проверяем, существует ли уже изображение с таким же itemId const imageIndex = images.findIndex( (изображение) => image.itemId === imageTitle ); если (imageIndex !== -1) { // Заменяем существующее изображение новым const newImages = [...изображения]; newImages[imageIndex] = newImage; setImages (новые изображения); } еще { // Добавляем новое изображение, если оно не существует setImages((prevImages) => [...prevImages, newImage]); } } поймать (е) {} }; Затем я отправляю код на сервер в этой функции:
// Обрабатываем отправку данных const handleValidateKyc = () => { setErrors({}); если (documentId === '') { setErrors((prevErrors) => ({ ...предыдущие ошибки, documentId: 'Ввести номер документа', })); возвращаться; } if (documentId !== userProfile?.documentId) { setErrors((prevErrors) => ({ ...предыдущие ошибки, documentId: 'Документ не совпадает с зарегистрированным', })); возвращаться; } константные данные формы = { dniImage: images.find((image) => image.itemId === 'dniImage').img, selfiWithDNI: images.find((image) => image.itemId === 'selfiWithDNI').img, idNumber: идентификатор документа, idUser: userProfile.id, }; console.log(formData); sendKycData (formData); }; Моя функция sendKycData является дублирующей функцией и выглядит следующим образом:
// Обновляем данные KYC. экспортировать const sendKycData = (kycData) => { возврат (отправка) => { диспетчеризация ({ тип: 'KYC_VALIDATION_START' }); const kycFormData = новая FormData(); kycFormData.append('dniImage', kycData.dniImage); kycFormData.append('selfiWithDNI', kycData.selfiWithDNI); kycFormData.append('idNumber', kycData.idNumber); kycFormData.append('idUser', kycData.idUser); const sendKycDataConfig = { метод: «пост», maxBodyLength: бесконечность, URL: 'URL-адрес сервера', заголовки: { «Тип контента»: «многочастные/данные формы», Принимать: '*/*', }, данные: kycFormData, }; AxiosInterceptorRequest (sendKycDataConfig) .then((соответственно) => { console.log(соответственно); если (соответственно.статус !== 200) { отправлять({ введите: «KYC_VALIDATION_ERROR», }); отправлять( enqueueSnackbar({ // сообщение: соотв.?.data?.data, сообщение: «Ошибка KYC», параметры: { ключ: новая Date().getTime() + Math.random(), вариант: 'ошибка', }, }) ); } если (соответственно.статус === 200) { диспетчеризация ({тип: 'KYC_VALIDATION_SUCCESS' }); отправлять({ введите: «UPDATE_USER_SUCCESS», полезная нагрузка: соотв.data.data, }); отправлять( enqueueSnackbar({ сообщение: «KYC ок», // сообщение: соотв.?.data?.message, параметры: { ключ: новая Date().getTime() + Math.random(), вариант: 'успех', }, }) ); } }) .catch((e) => { console.log(е); }); }; }; В Интернете он работает отлично, но когда я компилирую его для мобильных устройств под Android с помощью Capacitor, он не отправляет изображения файлов и возвращает ошибку, которая выглядит следующим образом:
Не удалось найти плагин Capacitor для обработки requestCode, пробуем плагины Cordova 1418078302
Он даже не печатает ответ
Пожалуйста, может кто-нибудь помочь мне решить эту проблему??
Мобильная версия