在我的应用程序中,我正在使用webView来调用一个URL。我的网站是使用Web Socket来改变数值的。 当我在chrome应用程序中打开同一个URL时,它的值发生了变化,这意味着web socket工作正常。但是,在webView里面,值没有发生变化。这是否意味着webSocket在webView部件中不支持。我注意到,WebViewClient的onLoadResource()方法一直在无限次地调用。
为什么android webView不支持webSocket?
5
人关注
2
个评论
mooga
:
可能是重复的
安卓WebView中的WebSocket
那么我是否需要修改HTML/JS文件?
hannna patait
发布于
2019-02-04
3
个回答
hannna patait
发布于
2020-09-30
已采纳
0
人赞同
网络套接字没有工作,因为本地存储在默认情况下被禁用。
在我的Android WebView中启用它解决了这个问题。
webView.getSettings().setDomStorageEnabled(true);
dakini
:
嗨,这是否意味着websocket现在在你的webview应用程序中正常工作了?我这样问是因为在以前的问题 (
stackoverflow.com/questions/13507438/...
)这个话题,接受的答案说不支持。所以我想在开始之前确定一下。谢谢!
Harpreet
发布于
2020-09-30
0
人赞同
对于我的情况,我也不得不启用AppCache。现在它工作得很好。
final WebSettings settings = web.getSettings();
settings.setLoadsImagesAutomatically(true);
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setAppCacheEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
settings.setSafeBrowsingEnabled(false);
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
web.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
CookieManager.getInstance().setAcceptThirdPartyCookies(web, true);
// Extras tried for Android 9.0, can be removed if want.
settings.setAllowContentAccess(true);
settings.setAllowFileAccess(true);
settings.setBlockNetworkImage(false);
Kaeson
发布于
2020-09-30
0
人赞同
首先检查你的错误代码;如果代码是。替换代码0】试着在你的
AndroidManifest.xml
中添加这个应用标签,如下图。
<application