通过使用域名 URL,服务器发送的事件在 android 中不起作用
Posted
技术标签:
【中文标题】通过使用域名 URL,服务器发送的事件在 android 中不起作用【英文标题】:Server Sent Events not working in android by using domain name URL 【发布时间】:2019-04-18 13:08:19 【问题描述】:我正在使用来自 Ajax “https://username:password@home.myopenhab.org/rest/events?topics=smarthome/”的这个 URL 从使用 Cordova 的服务器获取客户端应用程序中的 SSE(服务器发送事件)。
它在 ios 上运行良好,但在 android 上不运行 (我使用的是 android 7.0,最新的 chrome 版本,并且还在开发者选项中启用了 webview 实现)。 如果我提供类似“http://192.168.0.1/rest/events?topics=smarthome/”的 IP,对于相同的 URL,它在 IOS 和 android 上都可以正常工作。注意:两个 URL(“https://username:password@home.myopenhab.org/rest/events?topics=smarthome/” AND “http://192.168.0.1/rest/events?topics=smarthome/”), 使用“cordova-crosswalk-plugin”工作正常,但我不想使用人行横道插件,因为要求从 google play 下载一些依赖应用程序。
var eventSource = new EventSource(" +“url”+ /rest/events?topics=smarthome/*");
eventSource.addEventListener(‘message’, function (eventPayload)
//not entering here.
【问题讨论】:
您在构建或运行期间是否收到任何错误消息? 【参考方案1】:我找到了答案here,我就在这里说吧:
原因是你的网址使用https
您可以尝试删除\cordova\platforms\android\CordovaLib\src\org\apache\cordova\ CordovaWebViewClient.java
中的onReceivedSslError
方法
然后添加handler.proceed()
【讨论】:
你好,谢谢你的回复。他们在提到的路径中没有名为 CordovaWebViewClient.java 的文件。我在 \cordova\platforms\android\CordovaLib\src\org\apache\cordova\engine 路径中找到 SystemWebViewClient.java 我在其他部分更改了 handler.proceed() 但它不起作用... 我使用的是cordova 8.1.2以上是关于通过使用域名 URL,服务器发送的事件在 android 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章