Почему я не могу «получить» некоторые URL-адреса из приложения Capacitor на Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему я не могу «получить» некоторые URL-адреса из приложения Capacitor на Android?

Сообщение Anonymous »

Я пытаюсь написать мобильное приложение через Capacitor, использующее PouchDB. Когда я запускаю приложение в эмуляторе через Android Studio, соединение с удаленным экземпляром CouchDB не выполняется. Я обнаружил, что это сбой в API извлечения для определенных URL-адресов при работе на Android.
Для отладки я создал минимальное веб-приложение и обернул его с помощью Capacitor, чтобы запустить на Android. Приложение включает следующий код:

Код: Выделить всё

const testFetch = (url) => {
console.log("Testing fetch", url)
fetch(url)
.then((response) => response.text())
.then((t) => {
console.log("Respose from fetch:", url)
console.log(t)
console.log("that was it")
})
.catch((reason) => {
console.log("FETCH FAILED", url, reason)
})
}
Тогда у меня есть три теста:

Код: Выделить всё

  testFetch("https://jsonplaceholder.typicode.com/todos/1");   // just some JSON
testFetch("http://10.0.2.2:5984/simple");    // local pouchdb instance
testFetch("http://10.0.2.2:8080/sample.json");  // local http server + CORS
Вторые два используют IP-адрес, который является псевдонимом компьютера разработки при работе в эмуляторе Android. Я подтвердил, что могу получить доступ ко всем этим URL-адресам из браузера в эмуляторе, но приложение завершается успешно на первом этапе и завершается сбоем на вторых двух (ошибка: TypeError: Не удалось получить). При запуске базового веб-приложения в браузере все выполняется успешно (с localhost вместо 10.0.2.2).
Заголовки CORS присутствуют на всех URL-адресах. Насколько я вижу, приложение даже не пытается получить доступ к двум серверам, которые терпят неудачу - например, нет запросов HEAD. Я также пробовал различные другие URL-адреса и не вижу закономерности в ошибках, например. это не номер порта!= 80.
Будем признательны за любые подсказки относительно того, что происходит.

Подробнее здесь: https://stackoverflow.com/questions/655 ... on-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»