Narendar
Narendar

Reputation: 65

How to increase the default timeout on Webview to load URL in Android?

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

Answers (1)

Erfan mahdavi athar
Erfan mahdavi athar

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

Related Questions