服务器发送事件使用域名URL在android中不起作用

par*_*kod 5 android webview cordova cordova-plugins openhab

我正在使用来自Ajax" https:// username:password@home.myopenhab.org/rest/events?topics = smarthome / "的URL来使用Cordova从服务器获取客户端应用程序中的SSE(服务器发送事件).

  • 它在IOS上运行良好,但它不适用于android
  • (我使用的是Android 7.0,最新的chrome版本,并且还在开发人员选项中启用了webview实现).
  • 对于相同的URL,如果我提供像" http://192.168.0.1/rest/events?topics=smarthome/ " 这样的IP,它在IOS和android上工作正常.

注意:两个URL(" https://开头的用户名:password@home.myopenhab.org/rest/events主题=智能家居/ "和" http://192.168.0.1/rest/events?topics=smarthome/ "),与"cordova-crosswalk-plugin"工作正常,但我不想使用crosswalk插件,因为要求从谷歌播放下载一些依赖应用程序.

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

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

//not entering here.

}
Run Code Online (Sandbox Code Playgroud)

mdu*_*ucc 0

我在这里找到了答案,我会在这里说:

原因是您的 URL 使用https

您可以尝试删除onReceivedSslError方法\cordova\platforms\android\CordovaLib\src\org\apache\cordova\ CordovaWebViewClient.java

然后加handler.proceed()

  • 您好,谢谢您的回复。在提到的路径中没有名为 CordovaWebViewClient.java 的文件。我在 \cordova\platforms\android\CordovaLib\src\org\apache\cordova\engine 路径中找到 SystemWebViewClient.java 我已经更改了其他部分的 handler.proceed() 但它不起作用... (2认同)