События, отправленные сервером, не работают в Android с использованием URL-адреса доменного имени

Я использую этот URL-адрес из Ajax «https://username:[email protected]/rest/events?topics=smarthome/», чтобы получить SSE (события, отправленные сервером) в клиентском приложении с сервера с помощью Cordova.

  • На IOS работает нормально, а на android не работает.
  • (Я использую Android 7.0, последнюю версию Chrome, а также включил реализацию веб-просмотра в параметрах разработчика).
  • для того же URL-адреса, если я укажу IP-адрес, например "http://192.168.0.1/rest/events?topics=smarthome/» отлично работает как на IOS, так и на Android.

Примечание. Оба URL-адреса («https://username:[email protected]/rest/events?topics=smarthome/" И "http://192.168.0.1/rest/events?topics=smarthome/"), отлично работает с плагином cordova-crosswalk-plugin, но я не хочу использовать плагин crosswalk, потому что прошу загрузить какое-то зависимое приложение из Google Play.

var eventSource = new EventSource(" +“url”+ /rest/events?topics=smarthome/*");   

eventSource.addEventListener(‘message’, function (eventPayload){

//not entering here.

}

person paramesh surakod    schedule 15.11.2018    source источник
comment
Получаете ли вы какие-либо сообщения об ошибках во время сборки или выполнения?   -  person Delwyn Pinto    schedule 29.11.2018


Ответы (1)


Я нашел ответ вот, я скажу это здесь:

Причина в том, что ваш URL использует https

Вы можете попробовать удалить метод onReceivedSslError в \cordova\platforms\android\CordovaLib\src\org\apache\cordova\ CordovaWebViewClient.java

затем добавьте handler.proceed()

person mducc    schedule 02.12.2018
comment
привет, спасибо за ваш ответ .. в указанном пути нет файла с именем CordovaWebViewClient.java. Я нашел SystemWebViewClient.java в папке \cordova\platforms\android\CordovaLib\src\org\apache\cordova\engine. Я изменил handler.proceed() в другой части, но он не работает... - person paramesh surakod; 03.12.2018
comment
Я использую кордову 8.1.2 - person paramesh surakod; 03.12.2018