Reputation: 65
I'm currently loading the URL in webview and everything works perfect. However, in poor network condition I'm getting Err: Timedout on webview with in 10 seconds. I would like to increase this time out value to lets say 60 seconds. Thank you in Advance. Here is my webview :
'''
webView = findViewById(R.id.webview)
webView?.let { webView ->
webView.clearCache(true)
webView.clearFormData()
webView.clearHistory()
Log.i(LOG_TAG,"cleared cache & history on webview")
webView.settings.javaScriptEnabled = true;
webView.settings.setAllowUniversalAccessFromFileURLs(true);
webView.settings.allowContentAccess = true;
webView.settings.domStorageEnabled = true;
webView.webViewClient = MyWebViewClient(this, progressbarView, progressbar)
}
'''
Here is my webview client code:
''' override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest?): Boolean { val url: String = request?.url.toString(); if (Global.isNetworkConnected(this@Orderdetailswebview)){ return checkAndProcessHolsterManagerCall(view, url) }else{ var networkDialog = NetworkErrorVideoFragment() networkDialog.show(fragmentManager, "NetworkErrorDialog") } return true } override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean { return checkAndProcessHolsterManagerCall(view, url) } override fun shouldInterceptRequest(view: WebView, request: WebResourceRequest): WebResourceResponse? { if(fromActivityVal == "ViewTogether") { return super.shouldInterceptRequest(view, request) }else { return webResponse(request) } } '''
Upvotes: 3
Views: 2804
Reputation: 1
I think adding these two lines of code will solve your problem:
webView?.let { webView ->
...
// Add these two lines of code
webView.settings.setConnectTimeout(TIMEOUT_MILLIS)
webView.settings.setReadTimeout(TIMEOUT_MILLIS)
}
Replace the value of TIMEOUT_MILLIS
with the value you need
Upvotes: -5