Android-在WebSocket通信服务中使用WebView

Android-在WebSocket通信服务中使用WebView,android,service,webview,websocket,Android,Service,Webview,Websocket,在Android上使用WebView进行WebSocket通信需要连接WebView。但Android不允许我在整个应用程序生命周期中添加一个不可见(大小为0,0)的WebView(在iOS中,这很容易解决)。未连接的WebView不允许我与WebSocket通信 (a) 我尝试了一个无模式对话框,它甚至可以跨越更多的活动,并且它能够成功地与服务器通信,但是我无法处理void onBackPressed(){…}(我自己没有处理backbackback的权限),Android将其发送到无模式对话

在Android上使用WebView进行WebSocket通信需要连接WebView。但Android不允许我在整个应用程序生命周期中添加一个不可见(大小为0,0)的WebView(在iOS中,这很容易解决)。未连接的WebView不允许我与WebSocket通信

(a) 我尝试了一个无模式对话框,它甚至可以跨越更多的活动,并且它能够成功地与服务器通信,但是我无法处理void onBackPressed(){…}(我自己没有处理backbackback的权限),Android将其发送到无模式对话框,而不是它背后的活动

(b) 因此,我创建了一个服务,如: . 它可以加载html/js,并可以从js向java报告。但是我没有WebSocket通信,尽管连接了


我现在的问题是:(a)或(b)。。。有人解决了这个问题吗?如果可能的话,我真的更喜欢(b)

你有什么错误吗?您是否启用了javascript和js控制台日志记录?它声明[INFO:console(1193)]未考虑语法错误:未能构造“WebSocket”:URL。。。。但这对于无模式对话框解决方案非常有效。因此,我认为尽管WebView是使用链接中显示的方法连接到服务中的,但它无法处理WebSocket。为什么不使用本机WebSocket客户端库呢?是否有任何理由必须使用WebView进行WebSocket通信?有netty、ning、commons httpclient等。。。由于它们都不是现成的(在source->flood of errors中添加它们),所以我采用了它们(android和ios的代码相同),直到我有了一个“运行”版本。基本正常,但通常在开始时打开/关闭/打开/关闭。在99%的情况下,在经过一些周期后,与服务器建立了稳定的连接,很少是在第一个周期。在服务器上的tomcat->jetty开关之后,它停止工作。所以我切换到webview解决方案。在ios上,它在1天后运行良好。在android上,我不知道如何在整个生命周期或服务中附加无模式对话框?你找到解决方案了吗?你有错误吗?您是否启用了javascript和js控制台日志记录?它声明[INFO:console(1193)]未考虑语法错误:未能构造“WebSocket”:URL。。。。但这对于无模式对话框解决方案非常有效。因此,我认为尽管WebView是使用链接中显示的方法连接到服务中的,但它无法处理WebSocket。为什么不使用本机WebSocket客户端库呢?是否有任何理由必须使用WebView进行WebSocket通信?有netty、ning、commons httpclient等。。。由于它们都不是现成的(在source->flood of errors中添加它们),所以我采用了它们(android和ios的代码相同),直到我有了一个“运行”版本。基本正常,但通常在开始时打开/关闭/打开/关闭。在99%的情况下,在经过一些周期后,与服务器建立了稳定的连接,很少是在第一个周期。在服务器上的tomcat->jetty开关之后,它停止工作。所以我切换到webview解决方案。在ios上,它在1天后运行良好。在android上,我不知道如何在整个生命周期或服务中附加无模式对话框?您找到解决方案了吗?