rn-fetch-blob на реальном iPhone не может загрузить изображение (локальное тестирование) - PullRequest
0 голосов
/ 26 июня 2019

Я использую react-native-image-picker (^0.28.0) вместе с rn-fetch-blob (^0.10.15).До сих пор он работает при использовании симулятора, но когда я использую его на реальном iPhone, изображение не загружается, оно не загружается со следующей ошибкой, которая отслеживается обещанием.

"Error: Could not connect to the server."

(Да, сервер запущен и работает)

Если вы видите это, вы можете подумать, что это проблема с бэкендом, но другие запросы хорошо работают на реальном устройстве, только у этого есть проблемы.Отправляется запрос изображения:

{
data: "RNFetchBlob-file:///var/mobile/Containers/Data/Application/843A96A1-0000-40D3-B50F-95D69B94B87A/tmp/5D22283B-2014-4E9E-AC3E-AE677D91A366.jpg"
filename: "IMG_6834.jpg"
name: "pictures"
type: "image/jpeg"
}

Единственное отличие устройства симулятора и моего iPhone - это путь данных.Где на симуляторе это похоже на "RNFetchBlob-file:///Users/marian-mac/Library/Developer/CoreSimulator/Devices/....etc"

Любая идея, почему на этом симуляторе должно отличаться?Кажется, он отправляет тот же запрос.

Некоторая дополнительная информация, когда я предварительно просматриваю изображение в компоненте Image, оно тоже хорошо видно.Таким образом, кажется, что путь на реальном iPhone правильный.

Это метод загрузки изображения

uploadPicture: function(data, token) {
        return RNFetchBlob.fetch('POST', Constants.baseUrl + '/picture', {
            Authorization: "Bearer " + token,
            'Content-Type': 'multipart/form-data;boundary=***BOUNDARY***'
        }, data);
    },

И вот как я создаю массив запроса изображения, this.state.imagesсодержит данные средства выбора изображений.

this.state.images.forEach((image) => {
                            reqData.push({
                                data: image.imageFile,
                                filename: image.fileName.split('.')[0] + '.jpg',
                                name: 'pictures',
                                type: image.type
                            })
                        });

1 Ответ

0 голосов
/ 26 июня 2019

Проблема может заключаться в том, что вы загружаете на URL, не являющийся https.Была такая же проблема и nsAllowArbitraryLoads заставили его работать на симуляторе и выдавали ошибку при использовании его на реальном устройстве.Пришлось ждать пока он не станет https

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...