REKTOR_RG
@REKTOR_RG

Почему приложение cordova при ajax не видит локальный сервер?

Есть некое самодельное устройство умного дома, для которого я делаю приложение на cordova.
Суть приложения проста - управлять устройством путём отправки на его http сервер запросов.
При старте приложение проходится по всем ip адресам от 192.168.0.0 и до 192.168.0.255 отправляя на них асинхронные запросы и добиваясь характерного для нашего устройства ответа.
Суть в том, что при открытии html-файла приложения на ноутбуке всё работает как надо, а вот готовое приложение на Android 9 встречает ошибку "Not found". Из этого могу сделать вывод что дело не в JS и не в заголовках CORS, а в настройках cordova.
Вот файл конфигурации. (Знаю, что он уже похож на помойку. Это следы неудачных попыток заставить его увидеть сервер.)
config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.rikonardo.app" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>app</name>
    <description>
        Just the app!
    </description>
    <author email="example@example.com" href="http://example.com">
        Rikonardo
    </author>
    <preference name='phonegap-version' value='cli-5.2.0' />
    <preference name="android-build-tool" value="ant" />
    <content src="index.html" />
    <icon src="icon.png" />
    <feature name="http://api.phonegap.com/1.0/network"/>
	<preference name="android-minSdkVersion" value="1900" />
    <plugin name="cordova-plugin-whitelist" spec="1" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
        <preference name="android-minSdkVersion" value="14" />
        <preference name="android-targetSdkVersion" value="26" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
</widget>
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
REKTOR_RG
@REKTOR_RG Автор вопроса
Вопрос решен.
Решением была установка плагина cordova-plugin-whitelist.
cordova plugin add cordova-plugin-whitelist
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы